admin管理员组

文章数量:1794759

Python基础手册

Python基础手册

目录

第1章 Python环境准备与数据类型、分支结构

1.1.自动化测试介绍与第1个python程序

1.1.1.自动化测试介绍

1.1.2.Python环境准备

1.1.3.什么是解释器:编译型和解释型

1.1.4. 第一个Python程序

1.1.5 程序BUG的产生

1.1.6 Python常见错误

1.1.7 Python注释

1.2 Python算数运算符与变量概念

1.2.1 Python算数运算符

1.2.2 Python变量概念与应用

1.3 Python数据类型与输入输出

1.3.1 Python数据类型划分

1.3.2 Python不同数据类型的运算

1.3.3 Python变量通过键盘输入和格式化输出

1.3.4 Python字符串中的转义字符

1.4 Python列表与元组数据类型

1.4.1 Python列表[]

1.4.2 Python元组()

1.4.3 Python 多维列表

1.5 Python集合、字典、字符串数据类型

1.5.1 Python集合set()

1.5.2 Python字典{}

1.5.3 Python字符串str

1.6 Python字符串切片与分支概念

1.6.1 Python字符串切片

1.6.2 Python分支概念

1.7 Python分支结构

1.7.1 单分支结构

1.7.2 双分支结构

1.7.3 多分支结构

1.7.4 嵌套分支结构

1.7.5 使用逻辑运算符的分支结构


第1章 Python环境准备与数据类型、分支结构 1.1.自动化测试介绍与第1个python程序 1.1.1.自动化测试介绍

什么是自动化测试:

  • 概念:由电脑代替人工操作自动完成指定目标的过程。让程序代替人工去验证系统功能。

自动化测试在什么阶段开始?

  • 功能测试完毕后(即手工测试完成后)

 自动化测试能解决什么问题?

  • 手工回归测试依赖于人,自动化测试可以解决回归测试过于依赖人的问题
  • 手工测试无法模拟不断施加压力,自动化测试可以解决不断给系统压力的问题(比如使用Jmeter做性能测试)
  • 提高测试效率,保证产品质量

自动化测试的误区:

  • 自动化测试可以完全替代手工测试;

  • 自动化测试适用于所有功能

  • 自动化测试可以发掘更多的BUG;

  • 自动化测试一定比手工测试厉害;

什么项目适合做UI(界面)自动化测试:

  • 需求变动不频繁
  • 项目周期长
  • 项目需要回归测试

自动化测试分类:

  • Web-自动化测试
  • app-自动化测试
  • 接口-自动化测试
  • 单元测试-自动化测试

常用自动化测试的编程语言:

  • Python
  • Java

软件测试行业动向:

  • 软件测试这个行业已走向自动化这条路,对于我们来说自动化测试是我们必须要掌握的技能
1.1.2.Python环境准备

1、安装Python:

2、安装Pycharm:

3、创建项目及配置python解释器:

1、双击启动安装好的PyCharm开发工具

2、点击“New Project”,选择存放的目录,如"D:\\4-项目自动化测试\\2代码"

 3、配置python解释器,这里使用的是虚拟环境 

4、创建项目完成

Pycharm 整体认识:

1.1.3.什么是解释器:编译型和解释型

计算机可以直接理解的是机器语言,即0和1。其他语言对于计算机来说都是不能识别,也无法沟通,这就好比需要一个翻译器,把其他语言转换成机器语言,这样计算机就能读的懂了。那么这个翻译器,也就是转换的方式,可以通过编译,也可以通过解释的方式。

  • 编译型语言:程序在执行之前需要⼀个专门的编译过程,把程序编译成为机器语言的文件(可执行文件),运行时不需要重新翻译,直接执行就行了。
  • 解释型语言:编写的程序以文本方式先存储程序代码,最后将代码⼀句⼀句的直接运行。在发布程序时,看起来省了道编译工序,但是每次运行程序的时候,必须先解释成机器语言,然后再运行。

解释型的开发语言代表有:Python,Java等。他们的好处是跨平台(根据软件质量特性就是可移植性),牺牲的是速度,但对于用户来说是在接受范围内。

1.1.4. 第一个Python程序

Python源程序介绍:

  • Python源程序就是⼀个特殊格式的文本文件,可用任意文本编辑软件进行开发。我们这里使用Pycharm软件开发。
  • Python 程序的文件扩展名通常都是:.py

实现步骤:

  • 使用PyCharm刚才新创建项目,新建 hello.py文件。新建py文件的方法:右击项目名称 --》New --》Python File
  •       

         2.输入:hello,点击【Python file】

          

        3.双击新建的hello.py文件,在pycharm编辑器打开,输入代码:


    print("hello world!") print("hello python!")


    4.在终端命令行,输入命令:python hello.py,执行python程序

    5.或者通过Pycharm运行python程序:在编辑区域,鼠标右击 --> Run ....

    print()函数主要作用是用于调试程序代码,结果输出到屏幕上。

    1.1.5 程序BUG的产生

    关于程序中的缺陷(Bug):

    编写的程序不能正常执行,或者执行的结果不是我们期望的俗称 BUG ,常见错误的原因包括:

    • 手误,比如我们把print()写成rpint()
    • 开发技术能力不足
    • 业务知识理解不足
    1.1.6 Python常见错误

    认识Python错误和解决错误的方法,比如我们第1个Python程序,常见错误有:

    • 手误,如使用 pirnt("Hello world"),运行代码,将提示:

           NameError: name 'pirnt' is not defined(名称错误:'pirnt' 名字没有定义)

    • 缩进错误,比如我们的第1个Python程序,第二行增加一个空格

        

     运行代码,将提示:

          IndentationError: unexpected indent (缩进错误:不期望出现的缩进)

    遇见Python错误不要慌,比如上面的问题,提示已告诉你问题原因,只需按这提示去解决即可。

    1.1.7 Python注释

    单行注释:

    • 以 # 开头, # 右边的所有东⻄都被当做说明文字,而不是真正要执行的程 序,只起到辅助说明作用。

         

     多行注释:

    • 如果希望编写的注释信很多,一行⽆法显示,就可以使用多行注释。用一对连续的三个引号(单引号和双 引号都可以),把注释内容包起来。

        

     什么时候需要用到注释?

    • 对于复杂的操作,应该在操作开始前写上若干行注释 
    • 对于不是一目了然的代码,应在其行尾添加注释
    1.2 Python算数运算符与变量概念 1.2.1 Python算数运算符

    算数运算符概念:

    • 算数运算符是运算符的一种,是完成基本算术运算的符号。

    算术运算的符号:

    %取余数返回除法的余数9 % 2 = 1
    *10 * 20 = 200
    **又称次方、乘方,2 ** 3 = 8
    +10 + 20 = 30
    -10 - 20 = -10
    /10 / 20 = 0.5
    //取整数返回除法的整数部分(商) 9 //2 输出结果4
    • Python 中"*"运算符还可以用于字符串的运算,计算结果就是字符串重复指定次数的结果。

    算术运算符的优先级(由⾼到低排序):

    **幂运算(优先级最高)
    *、/、%、//乘、除、取余数、取整除
    +、-加、减

    Python代码进行数学计算时,与数学中的运算符的优先级一致,同样也是先乘除后加减 ,同级运算符是从左至右计算。

    • 比如:100/2**2,这个等同于100/(2**2)
    • 运算符使用过程中,建议使用()调整计算的优先级,层次清晰,一目了然。

    运算符应用场景:

    • 主要对数字的算数运算,比如:在代码里通常会用到计数器,这个就应用到了算数运算。

    运算符的使用:

    在windows命令行,输入命令:python,进入python解释器。

    • 输入后回车:80+2*5**2
    • 输入后回车:(2+3)*4
    • 输入后回车:print('hello' * 2)
    1.2.2 Python变量概念与应用

    变量是什么?

    • 变量是内存中存储数据的一个小空间。也就是说需要分配内存空间来存放。
    • 变量由两部分组成:一个是变量名,可以认为是一个标记,或者说是一个别名,主要是用来指向存放数据的位置;另一个是变量值,主要是存放具体的数据内容。

    在 Python中,每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。

    变量如何用?(定义和赋值)

    变量的定义赋值方式:变量名 = 值

      • 等号(=),是用来标识给变量赋值
      • 等号(=),左边的是定义的变量名
      • 等号(=),右边的是存储的数据值,然后赋值给左边的变量名。

    比如:n1 = 100,n1就是定义的变量名,并没有具体的数据,但知道存放数据的位置;'='号就是赋值,100是数据,通过'='号把100数据赋值给n1变量名。这样找到n1变量名,也就找到100数据

     变量的应用场景:

    • python的变量应用场景广泛,如程序的设计,功能的实现,测试自动化的应用等。所以学好python,从学好变量开始。

    变量的基本使用(1.2.2变量.py):


    ''' 1.python中字符串用一对单引号或者一对双引号引起来 2.python中数字不需要引号,可直接输入 3.使用print()函数,将变量打印输出到屏幕,用于调试分析 ''' # 1.简单赋值:Variable(变量名)=Value(变量值) city = "深圳" print(city) # 2.多变量赋值Variable1,variable2,...=Value1,Value2,..(多变量赋值也可用于变量交换) username,password = 'user123',123456 print(username,password) # 3.多目标赋值,a=b=value a=b=90 print(a,b) print(id(a),id(b)) # 4.变量重新赋值 b=100 print(a,b) # 查看当前定义的变量名 print(dir())


    变量名的命名规则:

    我们已会定义变量名和使用变量,那么变量名的命名可以随意取吗,就像我们的姓名。答案是否定的,变量名的取名既要有意义又要讲规则。规则如下:

    • 由数字,字母,下划线组成
    • 数字不能开头

    • 不能是括号以及各种特殊符号
    • 不能使用关键字
    • 区分大小写,如:变量名Andy 不等于 变量名andy

    变量名的命名不能用关键字,那什么是关键字?

    • 关键字,是Python自带的,每一个键字都具有特殊的功能和含义,是我们学习python的渠道。
    • 不能用于变量,不允许定义同关键字相同的变量名,如通过代码查看 Python 中的关键字

    import keyword print(keyword.kwlist)

    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


    变量名的命名约定:

    约定不是规则,规则是从python语言角度考虑,更好的协调运行代码,必须遵守;约定是从人的角度考虑,更好的识别其含义,是人的一种约定,可遵守可不遵守。

    • 变量名需要由两个或多个单词组成时,可以按照以下方式命名:
  • 每个单词都使用小写字母,然后单词与单词之间使用 _ 下划线连接。如:first_name
  • 小驼峰式命名:第一个单词以小写字母开始,后续单词的首字母大写。如:firstName
  • 大驼峰式命名:每一个单词的首字母都采用大写字母。如:FirstName
  • 1.3 Python数据类型与输入输出 1.3.1 Python数据类型划分

    什么是数据类型?

    • 存储数据的一种结构方式,就像我们测试用例按等价类划分概念一样,如数字类型,字符串类型。

    Python数据类型按大类分:数字型和非数字型及None类型。

    数字型可分为:

    • 整型 ( int ) :整数数据,如a=100
    • 浮点型( float ):带小数点的数据,如a=99.99
    • 布尔型( bool )
      • 真 True 非0的数 —— 非零即真 :如通常1表示真,True也可以表示真 
      • 假 False 0           ------  零即假:如通常0表示假,False也可以表示假

    非数字型可分为:

    • 字符串 (str):我们正常输入的一串字符,使用引号表示,如a="这是字符串"
    • 列表(list):1组数据,用中括号定义[],多个数据用逗号分隔,数据可修改,如a=[100,99.9,"这是字符串"]
    • 元组(tuple): 1组数据,用括号定义(),多个数据用逗号分隔,但数据不可修改,如a=([100,99.9],"这是字符串")
    • 集合(set):1组数据,用在括号定义{},多个数据逗号分隔,数据不可重复,如a={100,9,"这是字符串"}
    • 字典 (dictionary):有结构的数据,如 a = {'name':'袁老',"age":100}

    None:

    • None 表示待定类型,或者说不确定具体类型。如:a = None
    1.3.2 Python不同数据类型的运算

    数字型变量的运算:

    • 两个数字型变量可以直接进行算数运算。
    • 示例代码:1.3.2-1数字型变量运算.py

      ''' 定义整数 i = 100 定义浮点数 f = 99.99 定义布尔型 b = True 使用上述三个变量相互进行算术运算 ''' i = 100 f = 99.99 b = True


    非数字型(字符串)变量的运算:

    • 使用 “+” 拼接字符串,生成新的字符串。比如(1.3.2-2字符串变量加号拼接.py)
      first_name = "袁" last_name = "老" print(first_name + last_name)

    • 使用 “*” 重复拼接相同的字符串。比如(1.3.2-3字符串变量星号重复拼接.py)
      first_name = "袁" print(first_name*3)

    数字型变量与字符串,不能进行运算,如果强行运算会发生什么?

    • 示例代码:1.3.2-4数字型变量与字符串强行运算.py
      first_name = "袁" f = 99.99 i = 100 print(first_name+f+i)
      运行代码将报错:TypeError: can only concatenate str (not "float") to str

    不同类型变量的转换:

    1、将数字类型转换为字符串类型。语法:str(数字)

    示例代码:1.3.2-5数字类型转换为字符串类型.py


    a = 100 str(a) #把数字型变量a 转化为字符串型 print(type(a))


    2、将字符串类型转换为整型。语法:int(字符串)--这个字符串必需是数字的字符串,否则会报错。

    示例代码:1.3.2-6字符串转换为数字类型.py


    a = "100" int(a) # 字符串类型a 转化为 int数字类型 b = '我不是数字' int(b)


    3、将字符串类型转换为浮点型。语法:float(字符串)--同样字符串必需是浮点数字的字符串,否则会报错

    示例代码:1.3.2-7字符串转换为浮点类型.py


    f = "99.99" float(f) # 字符串类型f 转化为 float数字类型


    1.3.3 Python变量通过键盘输入和格式化输出

    变量值通过键盘输入:

    我们之前使用的变量值都是在程序代码中写死,在程序运行过程中怎样获取到用户在键盘上的输入信,然后动态的赋值给变量,这就需要用到 input 函 数。

    语法:变量名 =  input("提示信:")

    示例代码:1.3.3-1通过键盘输入数据.py


    # 通过 input()函数输入数据,然后赋值给变量name name = input("请输入姓名:") # 通过 print()函数把变量name的值打印在显示器上 print(name) #显示用户输入内容的数据类型 print(type(name)) num1 = int(input("请输入数字:")) print(100+num1)


    • 键盘输入的任何内容,Python 都认为是一个字符串。
    • 如果用户输入的是数字,可以通过int类型转换函数,将字符串类型转化为数字,然后再参与运算。如:int(input("请输入数字:"))

    变量值通过格式化输出:

    什么是格式化输出:

    • 指通过print函数,将自定义的文字信和变量值一起输出到控制台。

    格式化输出的实现方式:

    • 使用格式化操作符(%),包含" % "的字符串,都被称为格式化字符串 。

    格式化字符都有哪些?

    • %s:表示字符串。
    • %d:表示有符号的十进制整数,%06d 表示输出 6 位整数,不足用 0 补全。
    • %f: 浮点数,%.2f 表示只显示小数点后两位.
    • %%:输出%

    怎么使用格式化字符输出?

    语法格式:print("格式化字符1,格式化字符2,..." % (变量1, 变量2...))

    示例代码:1.3.3-2格式化字符输出.py


    stu_name = 'lisa' course_name = '地理' score = 99.9 show = '*'*20 print("%s\\n学生姓名:%s\\n课程名称:%s\\n成绩:%.2f\\n%s"%(show,stu_name,course_name,score,show)) # print(show +'\\n' + "学生姓名:"+ stu_name +'\\n' +"课程名称:"+course_name+'\\n'+"成绩:"+str(score))


    1.3.4 Python字符串中的转义字符

    什么是转义字符?

    • 以‘\\’反斜杠字符为开头,后面接上字符,其意思是将反斜杠‘\\’和后面的字符转变成为另外的意义。

    转义字符有哪些?

    • \\\\:反斜杠符号,转变成为另外的意义,为\\
    • \\':单引号,如'
    • \\":双引号,如"
    • \\n:换行符号 
    • \\t:横向制表符号

    案例分析:

    1、比如print()函数默认结尾是回车。示例代码:1.3.4-1验证print函数默认结尾.py


    # 第一行输出完成后,进行了换行,print()函数默认是换行 print("hello python") print("hello world", end="\\n") print("hello java")


    2、把多个 print()函数的输出结果,打印到一行。示例代码:1.3.4-2多个print函数打印一行.py


    # 第一行输出完成结束后,不会换行,因为结束符号为空格,不是换行符\\n print("hello world", end=" ") print("hello python")


    如何禁用转义字符串

    如果需要字符串输出”\\n”或者”\\t”,而不是要转义,那么就需要在字符串前面加 r。

    比如:print(r"hello\\tworld\\nhello\\\\world")

    1.4 Python列表与元组数据类型 1.4.1 Python列表[]

    概念:List (列表) 是 Python 中使用最频繁的数据类型,主要用于存储 一串数据信。在其他语言通常叫做 数组 。有以下特点:

    • 列表用 [] 定义,列表中的数据之间使用逗号',' 分隔 ; 
    • 列表的索引从 0 开始 ; 
    • 索引就是数据在列表中的位置编号,索引⼜可以被称为下标 ;
    • 列表定义:变量名 = []

    注意:从列表中取值时,如果超出索引范围程序会报错。


    # 定义一个空列表变量,名字叫 a a = [] # 定义一个列表变量,名字叫 list1,有四个元素 list1 = ["深圳","广州","上海","北京"] # 显示列表第一个元素的值 print(list1[0]) # IndexError: list index out of range # 错误,列表没有[4]这个值 print(list1[4])


    • 查看列表对象,都有哪些方法:通过dir(列表名)函数

    list1 = ["深圳","广州","上海","北京"] print(dir(list1))

    # ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']


    • 列表常用方法:
    功能方法说明
    增加列表名.insert(索引,数据)在指定位置插入数据
    列表名.append(数据)在末尾追加数据
    列表名.extend(另一个列表)追加另一个列表的值
    修改列表[索引] = 值修改指定索引的数据
    删除del(列表[索引])删除指定索引的数据
    列表名.remove(数据)删除第一次出现的指定数据
    列表名.pop()删除末尾数据
    列表名.pop(索引)删除指定索引数据
    列表名.clear()清空列表
    统计列表名.count(数据)返回指定数据在列表中出现的次数
    列表名.index(数据)返回数据在列表中的索引值,如果找不到抛出异常
    排序列表名.sort()升序排序
    列表名.sort(reverse=True)降序排序
    列表名.reverse()逆置,反转
    • Python列表、集合、字典、字符串变量的公共方法
    功能使用方法说明
    成员运算符值 in 列表判断值是否在列表中,存在返回 True,不存在返回 False
    统计  len(列表)返回列表元素个数
    max(列表)返回列表中最大的数
    min(列表)返回列表中最小的数据
    判断值 not in 列表判断值是否在列表中,存在返回 False,不存在返回 True
    • Python列表拆包概念:就是把一个列表中每个值拆出来,然后赋值给相应的变量。拆包操作同样适用于元组,集合和字典。

    # 定义一个列表 list1 = ["深圳","广州","上海","北京"] # 通过对列表进行拆包方式获取列表中每个元素的值 a, b, c,d = list1 print(a, b, c,d)


    示例代码:1.4.1-1列表常用方法.py

    1.4.2 Python元组()

    概念:Tuple (元组)与列表类似,不同之处在于元组的元素不能修改。

    • 元组定义:变量名 = ()

    # 定义一个元组,名字叫 tuple1,有三个元素 tuple1 = ("lisa", 28, 1.75) # 定义一个空元组,名字叫 tuple2 tuple2 = () # 元组只有一个元素时,元素后面需要添加逗号 tuple3 = ("深圳",) print(tuple3)


    元组常用方法:

    元组的常用方法与列表类似,元组的内容不可修改,所以没有增加、修改 和删除,排序等相关方法。但可以有统计相关方法,如:

    • 元组变量名.count(数据):返回指定的数据在元组中出现的次数。
    • 元组变量名.index(数据):返回指定数据在元组中的索引值,如不存在则报异常。

    tuple1 = ("lisa", 28,28,'timmy') print(tuple1.count(28)) print(tuple1.index('timmy'))


    元组和列表之间的转换:

    • 把列表转化为元组目的是让列表不可以被修改,以保护数据安全 ; 
    • 使用 list() 函数可以把元组转换成列表 ;
    • 使用 tuple() 函数可以把列表转换成元组

    list1 = ["深圳","广州","上海","北京"] # 通过 tuple 函数把 list1 转换为元组 tuple1 = tuple(list1) tuple2 = ("福田","罗湖","光明") # 通过 list 函数把 tuple2 转换为列表 list2 = list(tuple2)


    1.4.3 Python 多维列表

    二维列表概念:列表中的数据又是另一个列表。如下列表结构

    张三24
    李四28
    • 用列表存放二维表格

    # 定义一个二维列表 list1 = [['张三', 24],['李四', 28]] # list1[0][0]代表第一行第一列的值 # list1[1][1]代表第二行第二列的值


    1.5 Python集合、字典、字符串数据类型 1.5.1 Python集合set()

    集合概念:由一组无序排列且不重复的数据组成

    • 创建空集合 变量名 = set()

    # 定义一个空集合 set1 set1 = set() print(type(set1))


    • 创建非空集合

    # 定义一个非空集合 set1

    set1 = {"李飞", 28, 1.75} # 添加重复的值:李飞,将添加不进去,但程序不会报错 set1.add("李飞") print(set1)


    集合和列表的区别:

  • 列表是有序的对象集合 ;
  • 集合是无序的对象集合 ; 
  • 同一个集合内值不允许重复
  • 集合常用操作

    增加集合.add(值)增加值
    删除集合.pop()删除最后一个值
    集合.remove(值)删除指定值
    集合.clear()清空集合

    示例代码:1.5.1-1集合的使用与列表区别.py

    1.5.2 Python字典{}

    概念:

    • dictionary(字典)通常用于存储“键:值”对的数据,键与值之间用冒号分隔。 
      • 键(key)是索引,同一个字典内,键名不能重复; 
      • 值(value)是数据; 
    • 字典用{}定义 
      • 创建空字典:变量名 = {} 

    # 定义一个字典变量dict1,包含三个键值对 dict1 = {"name":"李飞", "age":22, "height":1.75}


    字典与集合的区别:

    • 集合中只有值 ;
    • 字典是包含键与值的键值对

    字典常用操作

    增加/修 改字典[“键”] = 值

    如果键存在,代表修改已有键的值

    如果键不存在,代表新增键值对

    删除字典.pop(“键”)删除指定键
    字典.clear()清空字典
    得到值字典[“键”]返回指定键的值

    示例代码:1.5.2-1字典的定义与常用操作.py

    1.5.3 Python字符串str

    概念:字符串就是一串字符集,是编程语言的一种数据类型。可以使用一对双引号 " "或者一对单引号 '' 定义。

    在实际开发过程中,如果字符串内部需要使用双引号 " ,可以使用单引号 ' 定义字符串。 如果字符串内部需要使用单引号 ' ,可以使用 双引号 "定义字符串。

    • 字符串使用双引号定义:str1 = "这是双引号定义的字符串,'里面有单引号'。"
    • 字符串使用单引号定义:str2 = '这里单引号定义的字符串,"里面有双引号"。'

    使用( 字符串变量[索引 ]) 获取一个字符串中指定位置的字符,索引计数从 0 开始。

    字符串的常用方法:比如str1.lstrip()

    功能方法说明
    去除空格字符串.lstrip()去除左侧空格
    去除空格字符串.rstrip()去除右侧空格
    去除空格字符串.strip()去除左右两侧空格
    大小写转换字符串.upper()将小写字母转化为大写
    大小写转换字符串.lower()将大写字母转化为小写
    拆分字符串.split()根据子串拆分字符串,返回由拆分后字符串组 成的 list
    查找字符串.find(“字符串”)查找字符串在字符串中出现的位置,找不到返回 -1
    查找字符串.字符串[索引]得到指定索引位置的字符
    查找字符串.count(“字符串”)返回字符串在字符串中出现的次数
    判断字符串.isalpha()判断字符串是否为字母构成
    判断字符串.isdigit()判断字符串是否为数字构成
    判断字符串.islower()判断字符串中所有字母是否都为小写
    判断字符串.isupper()判断字符串中所有字母是否都为大写
    替换字符串.replace(“字符串”, ”新字符串”)查找字符串,并用新的字符串替代
    替换字符串.swapcase()将大小写字母反转

    示例代码:1.5.3-1字符串的定义与常用操作.py

    1.6 Python字符串切片与分支概念 1.6.1 Python字符串切片

    切片概念:使用索引值来限定范围,从一个大的字符串中切出小的字符串 。

    切片语法:字符串[开始索引:结束索引:步长]

    •  [开始索引, 结束索引,]指定的区间属于左闭右开型(不包含结束位本身)
    •  开始索引数字可以省略,冒号不能省略
    •  结束索引数字可以省略,冒号不能省略
    •  步长默认为 1 ,如果连续切片,数字和冒号都可以省略

    索引的顺序:顺序索引就是从左向右计算索引

    • 截取从 2~ 5 位置的字符串

    str1 = "我爱python自动化测试!" s = str1[2:5] print(s)


    • 截取从 2 ~ 末尾的字符串

    str1 = "我爱python自动化测试!" s = str1[2:] print(s)


    • 截取从开始 ~ 5 位置的字符串

    str1 = "我爱python自动化测试!" s = str1[:5] print(s)


    • 截取完整的字符串

    str1 = "我爱python自动化测试!" s = str1[:] print(s)


    • 从开始位置,每隔一个字符截取字符串

    str1 = "我爱python自动化测试!" s = str1[::2] print(s)


    索引的倒序:倒序索引就是从右向左计算索引

    • 截取字符串末尾5个字符

    str1 = "我爱python自动化测试!" s = str1[-5:] print(s)


    • 开始索引(-5)即倒过来数,-1是"!",-5则是"动"  
    • 使用切片,使字符串的逆序

    str1 = "我爱python自动化测试!" s = str1[::-1] print(s)


    • 开始索引和结束索引不填,表示获取所有字符串,步长为-1,表示从-1位置的字符开始反向截取

    示例代码:1.6.1-1字符串切片.py

    1.6.2 Python分支概念

    分支概念:分支在我们的生活中比比皆是,比如我们坐地铁,需要48小时核酸码,保安对我们的码颜色判断是否可以进入。

    程序中分支应用(伪代码):


    if 48小时核酸码:

       if 有绿码:

            不容易啊,进站坐地铁去!

        else:

            噢,no!不可以进站!

    else:

        噢,no!不可以进站!


    程序中用到的比较运算符:

    ==比较运算符 左边的值是否 等于 右边的值,如果是,则条件成立,返回True,如果不是,则条件不成立,返回False
    !=比较运算符 左边的值是否 不等于 右边的值,如果是,则条件成立,返回True

    >

    比较运算符 左边的值是否 大于 右边的值,如果是,则条件成立,返回True
    <比较运算符 左边的值是否 小于 右边的值,如果是,则条件成立,返回True
    >=比较运算符 左边的值是否 大于或等于 右边的值,如果是,则条件成立,返回True
    <=比较运算符 左边的值是否 小于或等于 右边的值,如果是,则条件成立,返回True

    程序中用到的逻辑运算符:

    andx and y

    x和y,两个比较运算结果值都为True时,才返回True;

    x和y,只要有一个比较运算结果值为False时,就返回False

    orx or y

    x或者y,只要有一个比较运算结果值是True时,就返回True;

    x或者y,两个比较运算结果值为False时,就返回False

    notnot x

    x 比较运算结果值是True时,则返回False;

    x 比较运算结果值是False时,则返回True

    赋值运算符总结:

    =仅赋值运算符,
    +=加法 赋值运算符,例子: s += n  →   s = s + n
    -=减法 赋值运算符,例子: s -= n  →   s = s - n
    *=乘法 赋值运算符,例子: s *= n  →   s = s * n
    /=除法 赋值运算符,例子: s /= n  →   s = s / n
    //=取整除 赋值运算符,例子: s //= n  →   s = s // n
    %=取余数 赋值运算符,例子: s %= n  →   s = s % n
    **=幂 赋值运算符,例子: s **= n  →   s = s ** n

    示例代码:1.6.2-1赋值运算符总结.py

    1.7 Python分支结构 1.7.1 单分支结构

    语法格式如下:满足条件,则做


    if 判断的条件:

        如果条件判断成立,则做这些事情      .......


    • if分支结构的代码行缩进为一个 tab 键,或者 4 个空格 —— 建议使用空格。
    • 对于整个if语句,可看成一个完整的代码块

        

    pass 占位符:当 if 语句内容为空的时候,可使用 pass 占位符,避免程序报错,后续再完善代码。


    if 要判断的条件:

        pass


    示例代码:1.7.1-1单分支判断核酸码问题.py,需求如下:

    • 定义一个变量code记录核酸码,使用input输入"绿码" 或"黄码" 或"红码",
    • 判断是否"绿码",如果不是"绿码",则不充许进地铁

    # 通过input接收键输入的内容,赋值给变量code code = input('请输入你的核酸码:') # 判断是否绿码 # 一个完整的语句块,以下是语句块的开始 if code == '绿码':     print('允许进入地铁') # 一个完整的语句块,以上是语句块的结束

    print("单分支语句块执行完成后,执行后续的代码")


    • if 语句以及缩进部分是一个完整的代码块
    1.7.2 双分支结构

    语法格式如下:满足条件时要做,不满足条件时也要做


    if 要判断的条件:

        条件判断成立时,要去做的事情

    else:

        条件判断不成立时,也要去做的事情


    • if 和 else 语句与各自的缩进部分,共同组成一个完整的代码块

    示例代码:1.7.2-1双分支判断核酸码问题.py,增加需求如下:

    • 增加条件不成立时也要去做的需求,如果条件不成立,则显示:不是绿码,去做核酸,绿码后再来!

    code = input('请输入你的核酸码:') # 判断是否绿码 # 一个完整的语句块,以下是语句块的开始 if code == '绿码':     print('允许进入地铁') else:     print("不是绿码,去做核酸,绿码后再来!") # 一个完整的语句块,以上是语句块的结束 print("双分支语句块执行完成后,执行后续的代码")


    1.7.3 多分支结构

    语法格式如下:存在多个分支条件判断,根据不同条件判断,执行不同条件成立的代码


    if 条件1:

        条件1 成立时,要做的事情

    elif 条件2:

        条件2 成立时,要做的事情

    elif 条件3:

        条件3 成立时,要做的事情

    else:

        所有条件不成立时,要做的事情


    示例代码:1.7.3-1多分支判断核酸码问题.py,增加需求如下:

    • 增加条件判断,如果是黄码,则显示:不是绿码,去做核酸
    • 增加条件判断,如果是红码,则显示:OMG,马上去小屋隔离观察
    • 如果所有条件不成立,则显示:你的核酸码错了!

    code = input('请输入你的核酸码:') # 一个完整的语句块,以下是语句块的开始 if code == '绿码':     print('允许进入地铁') elif code == '黄码':     print("不是绿码,去做核酸,绿码后再来!") elif code == '红码':     print("OMG,马上去小屋隔离观察!") else:     print("你的核酸码错了!") # 一个完整的语句块,以上是语句块的结束

    print("多分支语句块执行完成后,执行后续的代码")


    1.7.4 嵌套分支结构

    语法格式如下:在满足外层条件的前提下,再增加内层的子级条件判断


    if 外层条件判断:

        外层条件满足执行的代码     ……

        if 内层条件判断:

            内层条件判断满足时,执行的代码         ……

        else:

            内层条件判断不满足时, 执行的代码

    else:

        外层条件判断不满足时,执行的代码


    • if ...else... 为一个语句块,在语句块中,可以嵌套另一个if...else...

    示例代码:1.7.4-1嵌套分支判断核酸码问题.py,需求如下:

    • 外层条件判断需要48小时核酸,内层条件判断需要绿码,满足内层条件方可进去坐地铁。
    • 不满足条件,则不可以进入坐地铁

    time = int(input('请输入核酸码时间24/48/72:')) # 一个完整的语句块,以下是语句块的开始 if time <= 48:     print('执行外层条件满足执行的代码')     code = input('请输入你的核酸码:')     # 内层语句块,以下是语句块的开始     if code == '绿码':         print('允许进入地铁')     else:         print("不是绿码,去做核酸,绿码后再来!")     # 内层语句块,以上是语句块的结束 else: print("不是48小时核酸,去做核酸") # 一个完整的语句块,以上是语句块的结束 print("双分支语句块执行完成后,执行后续的代码")


    1.7.5 使用逻辑运算符的分支结构

    概念:Python中的逻辑运算符包括:and 与/or 或/not 非三种。

    and(与):条件 1 and 条件 2

    • 两个条件同时满足,返回 True
    • 只要有一个不满足,就返回 False

    # 需求:健康码为“绿码”,且是48小时内核酸,才能能行 code = '绿码' time = 48 if code == '绿码' and time <= 48:     print('正常通行') else:     print('不能通行')


    or(或):条件 1 or 条件 2

    • 两个条件只要有一个满足,返回 True
    • 两个条件都不满足,返回 False

    # 需求:健康码为绿码,或者是义工,才能能行 code = '绿码' tag = '义工' if code == '绿码' or tag== '义工':     print('正常通行') else:     print('不能通行')


    not(非):not 条件

    • 条件为真,返回False;条件为假,返回True

    # 需求:健康码不是黄码和红码,才能能行

    code = '绿码' if not code == '绿码':     print('不能通行') else:     print('正常通行')


    示例代码:1.7.5-1逻辑判断核酸码问题.py

    本文标签: 手册基础Python