软件测试【四】Python复杂操作

一、Python中的数据类型:元组在python中的应用

在Python中,元组是一种不可变的数据类型,它和列表类似,但是元组创建后就不能被修改。元组使用小括号 () 来表示,其中的元素用逗号隔开。

元组在Python中的应用非常广泛,下面介绍几个常见的应用场景:

  1. 函数返回值:当函数需要返回多个值时,可以使用元组来实现。例如:
def get_user_info(user_id):
    # 查询数据库获取用户信息
    return (user_name, user_age, user_gender)
  1. 多个变量赋值:可以通过元组来进行多个变量的赋值操作。例如:
a, b, c = (1, 2, 3)

这样就可以同时将元组中的三个值分别赋给 a、b、c 三个变量。

  1. 元组作为字典的键:由于元组是不可变的,所以可以作为字典的键。例如:
dict = {('John', 25): 'Male', ('Lisa', 30): 'Female'}
  1. 访问数据库:在 Python 中,使用 MySQLdb 模块访问 MySQL 数据库时,查询得到的结果是一个元组的列表。例如:
import MySQLdb

conn = MySQLdb.connect(host='localhost', user='root', , db='test')
cursor = conn.cursor()
cursor.execute('SELECT * FROM users')
results = cursor.fetchall()

for row in results:
    print(row[0], row[1], row[2])

其中 results 是一个元组的列表,每个元组代表查询结果中的一行数据。

总之,元组是 Python 中非常重要的数据类型之一,在多个场景下都有广泛的应用。

二、range函数在python中的意义

range函数在Python中是一个用于生成一系列数字的函数,通常用于for循环中。range函数可以接受1~3个参数,分别表示起始值、终止值和步长。

例如,range(1, 10, 2) 将会生成从 1 开始,到小于 10 的整数,步长为 2 的一个列表,即 [1, 3, 5, 7, 9]。

如果只传递一个参数,那么它默认作为终止值,起始值默认为0,步长默认为1。例如,range(5) 将会生成从 0 到 4 的整数,即 [0, 1, 2, 3, 4]。

需要注意的是,range 函数返回的对象是一个可迭代对象,而不是一个列表。因此,如果想要得到一个列表,可以使用 list() 函数将其转化为列表。

同时,还可以结合其他 Python 函数来实现更加复杂的操作,比如通过 range 函数生成的列表进行切片、排序等操作。总之,range 函数是 Python 中一个非常重要、灵活和强大的函数,可以帮助开发者简化程序编写过程,并提高程序的效率。

三、for循环的定义实操

Python中的for循环可以遍历多种类型的数据结构,包括列表、元组、字典和集合等。下面是一些常见的for循环定义实操:

  1. 遍历列表

假设有一个列表存储了学生的成绩,我们可以使用for循环来遍历这个列表并计算总分和均分:

scores = [78, 85, 92, 67, 88]
total = 0
for score in scores:
    total += score
average = total / len(scores)
print("Total score:", total)
print("Average score:", average)

输出:

Total score: 410
Average score: 82.0
  1. 遍历元组

如果我们有一个元组表示班级的学生人数和男女比例,我们可以使用for循环来遍历这个元组并输出每个元素的值:

class_info = (30, 0.6, 0.4)
for info in class_info:
    print(info)

输出:

30
0.6
0.4
  1. 遍历字典

如果我们有一个字典表示班级学生的名字和年龄,我们可以使用for循环来遍历这个字典并输出每个键值对:

students = {"Tom": 18, "Jerry": 19, "Alice": 17}
for name, age in students.items():
    print(name, "is", age, "years old.")

输出:

Tom is 18 years old.
Jerry is 19 years old.
Alice is 17 years old.
  1. 遍历集合

如果我们有一个集合表示班级内所有学生的名字,我们可以使用for循环来遍历这个集合并输出每个名字:

student_names = {"Tom", "Jerry", "Alice"}
for name in student_names:
    print(name)

输出:

Tom
Jerry
Alice

总结:

以上就是Python中for循环的一些常见实操方法,通过不同的数据结构类型和相关操作,我们可以更好地理解和掌握Python中的for循环。

四、字符串、列表的切片操作

Python中的切片操作是一种非常方便和高效的方式来截取字符串和列表的子集。切片操作使用[start:end:step]这种格式,其中start表示起始位置(默认为0),end表示终止位置(默认为序列长度),step表示步长(默认为1)。

下面是一些详细的字符串和列表切片操作实例:

  1. 字符串切片

假设有一个字符串"Hello World!",我们可以使用切片操作来截取其中的子串:

string = "Hello World!"
print(string[0])        # H
print(string[-1])       # !
print(string[6:11])     # World
print(string[:5])       # Hello
print(string[6:])       # World!
print(string[::2])      # HloWrd
  1. 列表切片

假设有一个列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以使用切片操作来截取其中的子列表:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lst[0])           # 1
print(lst[-1])          # 10
print(lst[2:6])         # [3, 4, 5, 6]
print(lst[:5])          # [1, 2, 3, 4, 5]
print(lst[6:])          # [7, 8, 9, 10]
print(lst[::2])         # [1, 3, 5, 7, 9]

需要注意的是,切片操作生成的是一个新的子串或子列表对象,原来的字符串或列表并没有被修改。

另外,可以通过切片操作实现反转字符串或列表的功能:

string = "Hello World!"
reversed_string = string[::-1]
print(reversed_string)   # !dlroW olleH

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reversed_lst = lst[::-1]
print(reversed_lst)      # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

总结:

以上就是Python中字符串和列表切片操作的一些详细实例。掌握切片操作可以让我们更加高效地对字符串和列表进行操作和处理。

五、实操项目 :

烤鸭店利润计算器3.1 -如何优雅的简化之前的代码逻辑

在之前的烤鸭店利润计算器项目中,我们使用了大量的if-else语句来进行不同情况下的计算。如果数据量比较大或者需要添加更多的分类条件时,代码会变得非常复杂和冗长。因此,我们可以通过一些技巧来简化代码逻辑,让代码更加优雅和易于维护。

下面是一些比较好的优化方案:

  1. 使用字典代替if-else语句

我们可以使用一个字典来代替之前的if-else语句,将不同情况下的价格映射到相应的键值对上。这样做可以减少冗余代码并且使得代码更加易于扩展。

price_dict = {
    "北京烤鸭": 99,
    "鸭腿子": 29,
    "鸭翅": 15,
    "鸭肉卷": 20,
    "鸭血粉丝汤": 12
}
  1. 使用函数封装重复逻辑

我们可以将重复的计算逻辑封装成一个函数,避免在代码中出现重复的代码块。

def calculate_profit(price, cost, quantity):
    income = price * quantity
    profit = income - cost * quantity
    return income, profit
  1. 使用列表解析式代替循环

我们可以使用列表解析式来代替循环,使得代码更加简洁和易于理解。

income_list = [calculate_profit(price_dict[item], cost_dict[item], quantity_dict[item])[0] for item in order_dict]
profit_list = [calculate_profit(price_dict[item], cost_dict[item], quantity_dict[item])[1] for item in order_dict]

综合以上优化方案,下面是一个简化后的烤鸭店利润计算器3.1:

def calculate_profit(price, cost, quantity):
    income = price * quantity
    profit = income - cost * quantity
    return income, profit

price_dict = {
    "北京烤鸭": 99,
    "鸭腿子": 29,
    "鸭翅": 15,
    "鸭肉卷": 20,
    "鸭血粉丝汤": 12
}

cost_dict = {
    "北京烤鸭": 49,
    "鸭腿子": 9,
    "鸭翅": 5,
    "鸭肉卷": 8,
    "鸭血粉丝汤": 4
}

quantity_dict = {
    "北京烤鸭": 10,
    "鸭腿子": 20,
    "鸭翅": 50,
    "鸭肉卷": 30,
    "鸭血粉丝汤": 40
}

order_dict = {
    "北京烤鸭": 3,
    "鸭腿子": 5,
    "鸭翅": 8,
    "鸭肉卷": 10,
    "鸭血粉丝汤": 20
}

income_list = [calculate_profit(price_dict[item], cost_dict[item], quantity_dict[item])[0] for item in order_dict]
profit_list = [calculate_profit(price_dict[item], cost_dict[item], quantity_dict[item])[1] for item in order_dict]

total_income = sum(income_list)
total_profit = sum(profit_list)

print("总收入:", total_income)
print("总利润:", total_profit)

这样优化后的代码更加简洁清晰,易于阅读和维护。

既然看到这里,在收藏的同时,也请不吝啬的点个赞呗!期待 ~

绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。   

 

猜你喜欢

转载自blog.csdn.net/nhb687095/article/details/130129474