软件测试基础十二(python变量进阶)

变量进阶

1. 变量类型

在 Python 中,主要有以下几种常见的变量类型:

  1. 数字类型
    • 整数(int):用于表示整数值,如 1、-5、100 等。
    • 浮点数(float):用于表示带有小数部分的数值,如 3.14、-2.5、0.0 等。
    • 复数(complex):由实数部分和虚数部分组成,如 3 + 4j。
  1. 字符串类型(str)
    • 用于表示文本数据,用单引号或双引号括起来,如 "Hello, World!"'Python is great!'等。
    • 字符串是不可变的,即一旦创建,其内容不能被修改。
  1. 列表类型(list)
    • 是一种可变的有序序列,可以包含不同类型的元素。
    • 例如:[1, 2, 3]["apple", "banana", "orange"][1, "two", 3.5]等。
  1. 元组类型(tuple)
    • 是一种不可变的有序序列,可以包含不同类型的元素。
    • 例如:(1, 2, 3)("apple", "banana", "orange")等。
  1. 字典类型(dict)
    • 用于存储键值对的数据结构,通过键来访问对应的值。
    • 例如:{"name": "John", "age": 30}等。
  1. 集合类型(set)
    • 是一种无序的、不包含重复元素的数据结构。
    • 例如:{1, 2, 3}{"apple", "banana", "orange"}等。

2. 列表(list)

  1. 定义和特点
    • 列表是用方括号[]括起来的一组元素,可以包含不同类型的元素。
    • 列表是可变的,意味着可以添加、删除或修改其中的元素。
    • 列表中的元素是有序的,可以通过索引访问特定位置的元素。
  1. 常见操作
    • 索引和切片:可以通过索引访问列表中的单个元素,索引从 0 开始。也可以使用切片操作获取列表的一部分。
      • 例如:my_list = [1, 2, 3, 4, 5]my_list[2]返回 3,my_list[1:4]返回[2, 3, 4]
    • 添加元素 :可以使用append()方法在列表末尾添加一个元素,使用extend()方法将另一个列表的元素添加到当前列表中,使用insert()方法在指定位置插入一个元素。
      • 例如:my_list.append(6)my_list.extend([7, 8])my_list.insert(2, 9)
    • 删除元素 :可以使用remove()方法删除指定值的元素,使用pop()方法删除并返回指定位置的元素,使用del语句删除指定位置的元素。
      • 例如:my_list.remove(3)removed_element = my_list.pop(1)del my_list[2]
    • 排序 :可以使用sorted()函数对列表进行排序并返回一个新的列表,或者使用sort()方法直接在原列表上进行排序。
      • 例如:sorted_list = sorted(my_list)my_list.sort()

3. 公共方法

公共方法是适用于多种数据类型的通用操作方法。以下是一些常见的公共方法:

  1. len()函数
    • 返回对象的长度(元素个数)。
    • 例如:len([1, 2, 3])返回 3,len("Hello")返回 5。
  1. max()min()函数:
    • 分别返回可迭代对象中的最大值和最小值。
    • 例如:max([3, 5, 2])返回 5,min("abc")返回"a"
  1. sum()函数(仅适用于数字序列):
    • 返回可迭代对象中所有元素的总和。
    • 例如:sum([1, 2, 3])返回 6。
  1. enumerate()函数:
    • 用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
    • 例如:for index, value in enumerate(["apple", "banana", "orange"]):,会依次输出索引和对应的值。

4. 元组(tuple)

  1. 定义和特点
    • 元组是用圆括号()括起来的一组元素,可以包含不同类型的元素。
    • 元组是不可变的,一旦创建,其内容不能被修改。
    • 元组中的元素是有序的,可以通过索引访问特定位置的元素。
  1. 常见操作
    • 索引和切片:与列表类似,可以通过索引访问元组中的单个元素,也可以使用切片操作获取元组的一部分。
      • 例如:my_tuple = (1, 2, 3, 4, 5)my_tuple[2]返回 3,my_tuple[1:4]返回(2, 3, 4)
    • 解包:可以将元组中的元素分别赋值给多个变量。
      • 例如:a, b, c = (1, 2, 3),此时a的值为 1,b的值为 2,c的值为 3。

5. 集合(set)的使用

  1. 定义和特点
    • 集合是一种无序的、不包含重复元素的数据结构。用花括号{}set()函数来创建集合。
    • 例如:my_set = {1, 2, 3}my_set = set([1, 2, 3])
  1. 常见操作
    • 添加元素 :使用add()方法添加单个元素,使用update()方法添加多个元素。
      • 例如:my_set.add(4)my_set.update([5, 6])
    • 删除元素 :使用remove()方法删除指定元素,如果元素不存在会引发错误;使用discard()方法删除指定元素,如果元素不存在不会引发错误。
      • 例如:my_set.remove(3)my_set.discard(4)
    • 集合运算:可以进行并集、交集、差集等运算。
      • 例如:
        • 并集:set1 | set2set1.union(set2)
        • 交集:set1 & set2set1.intersection(set2)
        • 差集:set1 - set2set1.difference(set2)

6. 循环遍历字典

  1. 遍历键
    • 使用keys()方法获取字典的所有键,然后进行遍历。

    • 例如:

      my_dict = {"name": "Alice", "age": 30, "city": "New York"}
      for key in my_dict.keys():
      print(key)

  1. 遍历值
    • 使用values()方法获取字典的所有值,然后进行遍历。

    • 例如:

      for value in my_dict.values():
      print(value)

  1. 遍历键值对
    • 使用items()方法获取字典的所有键值对,然后进行遍历。每一对键值对以元组的形式返回。

    • 例如:

      for key, value in my_dict.items():
      print(f"{key}: {value}")

7. 字典中读取键和值的方法

  1. 通过键获取值
    • 使用方括号[]get()方法。
    • 例如:value = my_dict["name"]value = my_dict.get("name")。如果键不存在,方括号会引发KeyError错误,而get()方法会返回None(可以指定默认值)。
  1. 检查键是否存在
    • 使用in关键字或not in关键字。
    • 例如:if "name" in my_dict:if "name" not in my_dict:

8. for循环遍历字符串

  1. 遍历每个字符
    • 可以直接对字符串进行遍历,每次循环会得到一个字符。

    • 例如:

      my_string = "Hello"
      for char in my_string:
      print(char)

9. 字符串的常用方法

  1. 查找方法
    • find():查找子字符串在字符串中的首次出现位置,如果找不到则返回 -1。
    • index():与find()类似,但如果找不到子字符串会引发ValueError错误。
    • 例如:my_string = "Hello, World!"my_string.find("World")返回 7,my_string.index("Hello")返回 0。
  1. 分割方法
    • split():根据指定的分隔符将字符串分割成一个列表。
    • 例如:my_string = "apple,banana,orange"my_string.split(",")返回["apple", "banana", "orange"]
  1. 替换方法
    • replace():将字符串中的一部分替换为另一个字符串。
    • 例如:my_string = "Hello, World!"my_string.replace("World", "Python")返回"Hello, Python!"
  1. 大小写转换方法
    • upper():将字符串转换为大写。
    • lower():将字符串转换为小写。
    • capitalize():将字符串的首字母转换为大写,其余字母转换为小写。
    • 例如:my_string = "hello, world!"my_string.upper()返回"HELLO, WORLD!"my_string.lower()返回"hello, world!"my_string.capitalize()返回"Hello, world!"

10. 字符串切片

  1. 基本语法
    • 与列表切片类似,字符串切片的语法是string[start:stop:step],其中start表示起始索引(包含在切片结果中),stop表示结束索引(不包含在切片结果中),step表示步长(可选参数,默认为 1)。
  1. 示例
    • 例如:my_string = "Hello, World!"my_string[7:12]返回"World"my_string[::2]返回"Hlo ol!"

11. 多维列表

在 Python 中,多维列表是指包含一个或多个嵌套列表的列表结构,可以用来表示多维数组或矩阵等数据结构。

11.1. 定义和创建多维列表

  1. 直接赋值法
    • 可以通过直接在方括号中嵌套方括号来创建多维列表。
    • 例如,创建一个 2x2 的二维列表:matrix = [[1, 2], [3, 4]]
    • 这里matrix是一个包含两个子列表的列表,每个子列表又包含两个元素,相当于一个 2x2 的矩阵。
  1. 循环创建法
    • 可以使用循环来动态地创建多维列表。

    • 例如,创建一个 3x3 的二维列表,初始值都为 0:

      matrix = []
      for i in range(3):
      row = []
      for j in range(3):
      row.append(0)
      matrix.append(row)

    • 这段代码首先创建一个空列表matrix,然后通过两层循环分别创建每一行的列表,并将其添加到matrix中。

11.2. 访问多维列表中的元素

  1. 索引访问
    • 多维列表中的元素可以通过多个索引来访问。
    • 例如,对于上面创建的matrix列表,matrix[1][2]表示访问第二行第三列的元素(索引从 0 开始)。
  1. 遍历多维列表
    • 可以使用嵌套的循环来遍历多维列表中的每个元素。

    • 例如,遍历上面的matrix列表并输出每个元素:

      for row in matrix:
      for element in row:
      print(element, end=' ')
      print()

    • 这段代码首先遍历每一行的列表,然后在每一行中遍历每个元素并输出。

11.3. 多维列表的应用场景

  1. 表示矩阵和二维数据
    • 多维列表可以很方便地表示矩阵和二维数据结构。例如,在图像处理中,可以用多维列表来表示图像的像素值;在游戏开发中,可以用多维列表来表示游戏地图等。
  1. 存储和处理多维数据
    • 当需要处理多维数据时,多维列表可以提供一种灵活的数据结构。例如,在数据分析中,可以用多维列表来存储和处理多维数据集;在机器学习中,可以用多维列表来表示特征矩阵等。
  1. 动态数据结构
    • 由于多维列表是可变的,可以根据需要动态地添加、删除或修改元素,因此在需要动态数据结构的场景中非常有用。例如,可以用多维列表来表示动态的游戏场景或数据表格等。
相关推荐
土小帽软件测试3 分钟前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
LDG_AGI34 分钟前
【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)
大数据·人工智能·python·深度学习·机器学习·数据挖掘
188_djh42 分钟前
# Python基础到实战一飞冲天(一)--linux基础(一)
linux·开发语言·python·ubuntu·centos·os·operationsystem
凤枭香1 小时前
python opencv灰度变换
图像处理·人工智能·python·opencv
kali-Myon1 小时前
NewStarCTF2024-Week5-Web&Misc-WP
前端·python·学习·mysql·web安全·php·web
lzt23232 小时前
深度学习中的 Dropout:原理、公式与实现解析
人工智能·python·深度学习·神经网络·transformer
跟德姆(dom)一起学AI2 小时前
0基础跟德姆(dom)一起学AI 深度学习01-深度学习介绍
开发语言·人工智能·python·深度学习·机器学习
神奇夜光杯2 小时前
Python酷库之旅-第三方库Pandas(200)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
API快乐传递者2 小时前
利用Python 的爬虫技术淘宝天猫销量和库存
开发语言·爬虫·python