自动化测试——Python基础

文章目录

前言

本篇文章内容基于Python 3.10.6版本解释器

一、Python的基础语法

1.标识符

  • 标识符的定义:变量名,函数名,类名,对象名等等的统称(Python中所有的命名都叫做标识符)
  • 标识符的命名规则:
    • 第一个字符必须是字母表中字母或下划线 _
    • 标识符的其他的部分由字母、数字和下划线组成
    • 标识符不能是关键字
    • 标识符对大小写敏感(区分大小写)
  • 标识符命名建议:
    • 见名知意:尽量使用英文单词进行命名,比如名字:name,年龄:age
    • 小驼峰命名法则:第一个单词以小写开始,第二个单词以大写开头:myName
    • 大驼峰命名法则:每个单词的首字母都大写:FirstName
    • 下划线命名法则:user_name

2.注释

  • 注释核心作用:

    • 让人可以看得懂代码的作用,增加代码的可读性
    • 让不想执行的代码直接注释掉,那么就不会参与程序的运行
  • 单行注释:Python中单行注释以 # 开头

    # 这是一个单行注释
    
  • 多行注释:多行注释可以用多个 # 号,还有 '''"""

    # 这是第一行注释
    # 这是第二行注释
    
    '''
    这是多行注释
    第一行
    第二行
    '''
    
    """
    这是多行注释
    第一行
    第二行
    """
    

二、Python中常见的数据类型


列表和元组可以存放Python中任意的数据类型

  • 不可变数据类型:Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据类型:List(列表)、Dictionary(字典)、Set(集合)
  • 数据类型归类:
    • 容器类型:字符串,列表,元组,字典,集合
    • 数字类型:整型,浮点型,布尔类型

1.Number(数字)

1.1.int(整数数据类型)

# 整型(int)
number = 666
print(type(number))  # <class 'int'>

1.2.float(浮点型)

# 浮点型(float)
number = 3.14
print(type(number))  # <class 'float'>

1.3.bool(布尔类型)

  • 布尔类型特点:

    • 布尔类型只有两个值:TrueFalse
    • 布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0
    • 布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值
    • 布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0
    # bool(布尔类型)
    bool1 = True
    bool2 = False
    print(type(bool1))  # <class 'bool'>
    print(type(bool2))  # <class 'bool'>
    

注意:在Python中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性

2.String(字符串)

  • Python中的字符串用单引号 '' 或双引号 "" 或三引号 '''''' 括起来

    # str(字符串)
    str1 = '666'
    str2 = "张三"
    str3 = '''李四'''
    print(type(str1))  # <class 'str'>
    print(type(str2))  # <class 'str'>
    print(type(str3))  # <class 'str'>
    

3.List(列表)

  • 列表:[] 表示列表。列表当中可以存放Python中任意的数据类型

    # list(列表)
    list1 = [1, "张三", 3.14, True]
    print(type(list1))  # <class 'list'>
    

4.Tuple(元组)

  • 元组:元组写在小括号() 里,元素之间用逗号隔开。元组与列表类似,不同之处在于元组的元素不能修改

  • 元组的括号可以省略

    # tuple(元组)
    tuple1 = (1, 2, "张三", 3.14, [1, 3])
    print(type(tuple1))  # <class 'tuple'>
    tuple2 = 1, 2, "张三", 3.14, [1, 3]
    print(type(tuple2))  # <class 'tuple'>
    

5.Set(集合)

  • 集合是一种无序、可变的数据类型,用于存储唯一的元素

  • 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作

  • 特性:默认去重(集合里面不存在重复的数据)

  • 集合无法存在列表和字典

    # set(集合)
    set1 = {
         
         1, 3.14, "张三", True, (1, 4)}
    print(type(set1))  # <class 'set'>
    

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

6.Dictionary(字典)

  • 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取

  • 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合

  • 键(key)必须使用不可变类型

  • 在同一个字典中,键(key)必须是唯一的

    # dict(字典)
    dict1 = {
         
         "name": "张三", "age": 18, "sex": "男"}
    print(type(dict1))  # <class 'dict'>
    

三、输入和输出

1.读取键盘输入

  • 接收用户输入的数据可以调用内建函数:input()实现数据获取

  • 一般输入的数据会保存到变量中,默认情况获取的所有用户输入的内容都是字符串

  • 当程序执行的时候遇到input内建函数,程序会挂起(如果不输入回车)那么代码不会继续往下执行

    username = input("请输入用户名")
    password = input("请输入密码")
    print(f"您输入的用户名是:{
           
           username},密码是:{
           
           password}")
    

2.格式化输出

  • 格式化定义:按照指定的方式,拼接新的字符串内容(简单理解:当需要输出一个字符串的同时,也进行输出变量值)

方式一(不常用,了解即可):

  • 使用占位符号 % 实现格式化输出

  • 需要根据变量值的不同数据类型进行不同参数的占位

    • 格式化输出字符串类型:%s占位
    • 格式化输出整数类型:%d占位
    • 格式化输出浮点类型:%f占位
    name = "张三"
    age = 18
    height = 1.98
    print("我的名字是:%s" % name)  # 格式化输出字符串
    print("我的年龄是:%d" % age)  # 格式化输出整数
    # 浮点数格式化输出时默认保留6位小数
    # 如果需要保留指定的小数位,需要进行修改,那么在f前面加上.2f(保留2为小数)
    print("我的身高是:%f米" % height)  # 格式化输出浮点数
    print("我的身高是:%.2f米" % height)
    
  • 多个格式化输出的语法格式

    name = "张三"
    age = 18
    height = 1.98
    # 多个格式化输出的语法格式
    print("我的名字是:%s,我的年龄是:%d,我的身高是:%.2f米" % (name, age, height))
    

方式二(不常用,了解即可):

  • 任何的数据类型都可以放到{}进行格式化输出
name = "张三"
age = 18
height = 1.98
# 简写模式
print(f"我的名字是:{
     
     name},我的年龄是:{
     
     age},我的身高是:{
     
     height}米")
print(F"我的名字是:{
     
     name},我的年龄是:{
     
     age},我的身高是:{
     
     height}米")
# 完整模式
print("我的名字是:{},我的年龄是:{},我的身高是:{}米".format(name, age, height))

四、数据类型转换

数据类型转换的内建函数

函数 作用
int() 转换为整数数据类型
float() 转换为浮点数数据类型
str() 转换为字符串数据类型
eval() 用来计算在字符串中的有效Python表达式,并返回一个对象(将字符串原生的数据类型转化为原本的类型)
  • int():转换为整数数据类型

    str1 = "666"
    print(type(str1))  # <class 'str'>
    # int()函数——将字符串的原生整数类型进行转化
    print(type(int(str1)))  # <class 'int'>
    
  • float():转换为浮点数数据类型

    str2 = "666"
    # float()函数——将字符串的原生浮点类型进行转化
    print(type(str2))  # <class 'str'>
    print(type(float(str2)))  # <class 'float'>
    
  • str():转换为字符串数据类型(万物皆可字符串:任何数据类型都可以加上引号变成字符串)

    number = 666
    print(type(number))  # <class 'int'>
    # str()函数——将原生的数据类型转化为字符串
    print(type(str(number)))  # <class 'str'>
    
  • eval():将字符串原生的数据类型转化为原本的类型

    str3 = "[1,2,3]"
    print(type(str3))  # <class 'str'>
    print(type(eval(str3)))  # <class 'list'>
    str4 = "(1,2,3)"
    print(type(str4))  # <class 'str'>
    print(type(eval(str4)))  # <class 'tuple'>
    str5 = "{1,2,3}"
    print(type(str5))  # <class 'str'>
    print(type(eval(str5)))  # <class 'set'>
    str6 = '{"name": "张三", "age": "18"}'
    print(type(str6))  # <class 'str'>
    print(type(eval(str6)))  # <class 'dict'>
    str7 = "666"
    print(type(str7))  # <class 'str'>
    print(type(eval(str7)))  # <class 'int'>
    

五、运算符

1.算术运算符

以下假设变量 a=5,变量 b=2

运算符 描述 实例
+ a + b 输出结果 7
- a - b 输出结果 3
* a * b 输出结果 10
/ a / b 输出结果 2.5
% 取模(返回除法的余数) a % b 输出结果 1
** a ** b 输出结果 25
// 取整除 a // b 输出结果 2

2.比较(关系)运算符

以下假设变量 a=5,变量 b=2

运算符 描述 实例
== 等于 (a == b) 返回 False
!= 不等于 (a != b) 返回 True
> 大于 (a > b) 返回 True
< 小于 (a < b) 返回 False
>= 大于等于 (a >= b) 返回 True
<= 小于等于 (a <= b) 返回 False

注意:比较运算符返回的结果类型是布尔值。要么是True,要么是False

3.赋值运算符

运算符 描述 实例
= 简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
:= 海象运算符

4.逻辑运算符

  • and:两个条件必须同时满足最终结果为真
  • or:两个条件只要一个为真,最终结果为真
  • not:取反,假变真,真变假
运算符 描述 实例
and 布尔"与"
or 布尔"或"
not 布尔"非"

5.位运算符

运算符 描述 实例
& 与运算符
| 或运算符
^ 异或运算符
~ 取反运算符
<< 左移动运算符
>> 右移动运算符

6.成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。

7.身份运算符

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象

8.运算符优先级

以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

运算符 描述
(expressions…),
[expressions…], {key: value…}, {expressions…}
圆括号的表达式
x[index], x[index:index], x(arguments…), x.attribute 读取,切片,调用,属性引用
await x await 表达式
** 乘方(指数)
+x, -x, ~x 正,负,按位非 NOT
*, @, /, //, % 乘,矩阵乘,除,整除,取余
+, - 加和减
<<, >> 移位
& 按位与 AND
^ 按位异或 XOR
| 按位或 OR
in,not in, is,is not, <, <=, >, >=, !=, == 比较运算,包括成员检测和标识号检测
not x 逻辑非 NOT
and 逻辑与 AND
or 逻辑或 OR
if – else 条件表达式
lambda lambda 表达式
:= 赋值表达式

六、Python常见数据类型具体操作方法

1.字符串常用的操作方法

  • 字符串的索引及切片

    • 索引

      • 字符串是一种有序容器类型的数据,可以通过下标(索引)取值
      • 字符串可以通过索引值的正负两极取值
        • 从左到右默认从0开始

        • 从右到左默认从-1开始

          str1 = "今天又是充满希望的的一天"
          # 可以通过字符串的索引值取字符的实际值
          print(str1[1])  # 天
          print(str1[-2])  # 一
          
    • 切片

      • 切片是指对被操作的字符串对象的内容取一部分值,列表,元组都是支持切片操作

      • 切片的语法格式:[起始:结束:步长]

        str1 = "今天又是充满希望的的一天"
        # 只写开始,不写结束:默认到最后(默认包含开始索引值的内容)
        print(str1[6:])  # 希望的的一天
        # 有开始也有结束:包含开始的索引值,不包含结束的索引值
        # 切片的操作是一个左闭右开的区间
        print(str1[6:9])  # 希望的
        # 只写结束,不写开始:默认从0(索引)开始
        print(str1[:9])  # 今天又是充满希望的
        # 开始结束都不写
        print(str1[:])  # 今天又是充满希望的的一天
        # 对字符串切片操作是可以通过负数索引进行切片操作
        print(str1[6:-4])  # 希望
        # 当开始和结束的索引值没有交集的时候会取不到实际值
        print(str1[-1:6])
        # 步长,不写开始不写结束,步长为2
        print(str1[::2])  # 今又充希的一
        
  • 查找字符串中具体某个元素

    • 方法一:使用find()
      str1 = "今天又是充满希望的的一天"
      # 如果该字符串有该元素那么返回元素的索引值
      print(str1.find("希"))  # 6
      # 如果该字符串没有该元素那么返回的索引值是-1(表示没有该元素)
      print(str1.find("快"))  # -1
      
    • 方法二:使用index()
      str1 = "今天又是充满希望的的一天"
      # 如果该字符串有该元素那么返回元素的索引值
      print(str1.index("希"))  # 6
      # 如果该字符串没有该元素那么程序会报错
      print(str1.index("快"))  # 报错
      
  • count()统计元素在整个字符串当中出现的次数

    str1 = "今天又是充满希望的的一天"
    # 会返回该元素在整个字符串当中出现的次数
    print(str1.count("天"))  # 2
    
  • replace()替换字符串中的元素值

    str1 = "今天又是充满希望的的一天"
    # 替换字符串中的元素值
    print(str1.replace("今", "明"))
    
  • 使用split()对字符串进行切片

    str1 = "今天又是充满希望的的一天"
    # split对字符串进行切片的方法,返回的数据类型是列表,可以设置参数切几次,切好的数据是字符串类型
    print(str1.split("天", 1))  # ['今', '又是充满希望的的一', '']
    
  • capitalize()首字母大写,其余全部小写

    # capitalize()将整个字符串第一个元素(不管是大小写全部做大写处理)之后的内容里面的所有大写字母转化成小写字母
    str2 = "abcdABCD"
    print(str2.capitalize())  # Abcdabcd
    
  • title()根据字符串的空格将每个空格之后的首字母大写

    str3 = "abcd zxcv qwer"
    # 根据字符串的空格将每个空格之后的首字母大写(前提是空着之后是字母)
    print(str3.title())  # Abcd Zxcv Qwer
    
  • startswith()检测字符串是否以指定元素开头

    str4 = "good good stady day day up"
    # 检测字符串是否以指定元素开头
    print(str4.startswith("g"))  # True
    print(str4.startswith("b"))  # False
    print(str4.startswith("good"))  # True
    
  • lower()将整个字符串当中的所有大写字母转化为小写

    str5 = "I Love You"
    # 将整个字符串当中的所有大写字母转化为小写
    print(str5.lower())  # i love you
    
  • 去除自字符串前面或后面的空格元素

    • 去除前面空格元素:lstrip()
    • 去除后面空格元素:rstrip()
    • 去除前后空格元素:strip()
    # 去除自字符串前面或后面的空格元素
    str6 = " I Love You "
    # 去除后面空格元素
    print(str6.rstrip())  # " I Love You"
    # 去除前面空格元素
    print(str6.lstrip())  # "I Love You "
    # 去除前后空格元素
    print(str6.strip())  # I Love You
    
  • isdigit()判断字符串所有的元素是否由纯数字组成

    str7 = "12345qwer"
    # 判断字符串所有的元素是否由纯数字组成
    print(str7.isdigit())  # False
    
  • 使用固定的字符隔开字符串当中的所有元素

    str8 = "abcd1234"
    # 字符串的拼接操作:使用固定的字符隔开字符串当中的所有元素
    print("*".join(str8))  # a*b*c*d*1*2*3*4
    print("-".join(str8))  # a-b-c-d-1-2-3-4
    print("0".join(str8))  # a0b0c0d01020304
    

2.列表常用的操作方法

  • 列表中增加数据

    • 第一种方式:append()添加数据(默认是追加到列表末尾)

      name_list = ["宝总", "爷叔", "小江西", "蔡司令"]
      # 第一种方式:append()添加数据(后默认是追加到列表末尾)
      name_list.append("汪小姐")
      print(name_list)  # ['宝总', '爷叔', '小江西', '蔡司令', '汪小姐']
      
    • 第二种方式:append()插入数据

      name_list = ["宝总", "爷叔"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人菜瘾大的小熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值