ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python自动化测试14】Python自动化测试基础与进阶练习题

2022-01-22 17:00:50  阅读:118  来源: 互联网

标签:题目 Python self 列表 测试 自动化 print 输入 属性


文章目录

一、前言

  本文章主要讲解Python自动化测试的基础练习题并附录对应答案,主要给自动化测试行业从业新手或想了解自动化测试行业小白的知识复习以及梳理,文章中全部是特定针对自动化测试领域的练习题哦,如果你想学习参考其他的链接,戳下方也可以跳转至Python100例相关的地址:

学习地址1:Python100例1
学习地址2:Python100例2

除此之外下方有系列文章的传送门,还在持续更新中,感兴趣的小伙伴也可以前往查看,话不多说,让我们一起看看吧~

系列文章:
  系列文章1:【Python自动化测试1】遇见Python之美
  系列文章2:【Python自动化测试2】Python安装配置及PyCharm基本使用
  系列文章3:【Python自动化测试3】初识数据类型与基础语法
  系列文章4:【Python自动化测试4】字符串知识总结
  系列文章5:【Python自动化测试5】列表与元组知识总结
  系列文章6:【Python自动化测试6】字典与集合知识总结
  系列文章7:【Python自动化测试7】数据运算符知识合集
  系列文章8:【Python自动化测试8】流程控制语句讲解
  系列文章9:【Python自动化测试9】函数知识合集
  系列文章10:【Python自动化测试10】文件基础操作
  系列文章11:【Python自动化测试11】模块、包与路径知识合集
  系列文章12:【Python自动化测试12】异常处理机制知识合集
  系列文章13:【Python自动化测试13】类、对象、属性与方法知识合集

  

二、Python练习题

2.1 Python基础语法规则

  题目一: 请简述变量的命名规范

"""
题目一:请简述变量的命名规范
1、由数字、字母下划线组合且不能以数字开头
2、不能使用Python内置关键字作为变量名
3、变量命名需见名知意
"""

  题目二: Python如何添加注释

"""
题目二:Python如何添加注释
1、单行注释:使用#号进行注释
2、多行注释:使用三引号进行注释
3、ctrl+/可以快速进行选中行的注释,默认注释光标当前行,再次使用快捷键取消注释
"""

  题目三: 卖橘子的计算器:提示用户输入橘子价格和重量,计算出应该支付的金额!不需要校验数据,都传入数字即可。

"""题目三:卖橘子的计算器:提示用户输入橘子价格和重量,计算出应该支付的金额!不需要校验数据,都传入数字即可。"""
price = int(input("请输入价格"))
weight = int(input("请输入重量"))
mokey = price*weight
print(f"应该支付的金额为{mokey}")

  

2.2 字符串相关练习题

  题目四: 字符串,str1 = "I love python"

  (1)找出第6个字符
  (2)请复制一份字符串,保存为 str2

"""
题目四:字符串,str1 = "I love python"
(1)请找出第5个字符
(2)请复制一份字符串,保存为 str_two
"""


str1 = "I love python"
# 请使用代码找出第 6 个字符
print(str1[5])

# 请复制一份字符串,保存为 str_two
str2 = str1[:]
print(str2)



# 运行结果:
e
I love python

Process finished with exit code 0

  题目五: 演练字符串操作 my_hobby = "Never stop learning!"
  (1)截取从 位置3 ~ 位置7 的字符串(含位置7)
  (2)截取完整的字符串
  (3)从索引4开始,每2个字符中取一个字符
  (4)截取字符串末尾2个字符
  (5)字符串的倒序

"""题目五:演练字符串操作 my_hobby = "Never stop learning!" """
"""说明:“位置”指的是字符所处的位置(比如位置1,指的是第一个字符“N”);“索引”指的是字符的索引值
(比如索引0, 代表的是第一个字符“N”);开始位置 ,是指字符串起始,即下标为0开始;末尾,是指字符串最后。"""

my_hobby = "Never stop learning!"

# 截取从 位置3 ~ 位置7 的字符串(含位置7)
print(my_hobby[2:7])

# 截取完整的字符串
print(my_hobby[:])


# 从索引4开始,每2个字符中取一个字符
print(my_hobby[4::2])

# 截取字符串末尾2个字符
print(my_hobby[-2:])

# 字符串的倒序
print(my_hobby[::-1])




# 运行结果:
ver s
Never stop learning!
rso erig
g!
!gninrael pots reveN

Process finished with exit code 0

  题目六: 将字符串中的单词位置反转,“ni ai wo” 转换为 “wo ai ni”

"""题目六:将字符串中的单词位置反转,“ni ai wo” 转换为 “wo ai ni”"""


s = "ni ai wo"
s1= s.split(" ")
s2 = s1[::-1]
s3 = " ".join(s2)
print(s3)




# 运行结果:
wo ai ni

Process finished with exit code 0

  

2.3 列表与元组相关练习题

  题目七: 题目:删除如下列表中的"矮穷丑",写出2种或以上方法:

info = ["CSDN", 88, "男", "矮穷丑", ["高", "富", "帅"], True, None, "狼孩"]
"""
题目七:删除如下列表中的"矮穷丑",写出2种或以上方法:
info = ["CSDN", 88, "男", "矮穷丑", ["高", "富", "帅"], True, None, "狼孩"]
"""

# 方法一:
info = ["CSDN", 88, "男", "矮穷丑", ["高", "富", "帅"], True, None, "狼孩"]
info.pop(3)
print(info)

# 方法二:
info = ["CSDN", 88, "男", "矮穷丑", ["高", "富", "帅"], True, None, "狼孩"]
info.remove('矮穷丑')
print(info)

# 方法三:
info = ["CSDN", 88, "男", "矮穷丑", ["高", "富", "帅"], True, None, "狼孩"]
info_list_1=info[0:3]
info_list_2=info[4:]
info_list_1.extend(info_list_2)
info=info_list_1
print(info)



# 运行结果:
['CSDN', 88, '男', ['高', '富', '帅'], True, None, '狼孩']
['CSDN', 88, '男', ['高', '富', '帅'], True, None, '狼孩']
['CSDN', 88, '男', ['高', '富', '帅'], True, None, '狼孩']

Process finished with exit code 0

  题目八: 现在有一个列表 li2=[1,2,3,4,5],请通过相关的操作改成 li2 = [0,1,2,3,66,4,5,44,55,66]

"""题目八:现在有一个列表 li2=[1,2,3,4,5],请通过相关的操作改成 li2 = [0,1,2,3,66,4,5,44,55,66]"""
li2 = [1, 2, 3, 4, 5]
li2.insert(0, 0)
li2.insert(4, 66)
li2_last=[44, 55, 66]
li2.extend(li2_last)
print(li2)
[0, 1, 2, 3, 66, 4, 5, 44, 55, 66]

Process finished with exit code 0

  题目九: 使用列表存储和操作以下数据:
  (1)某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄
  (2)有一个人对你很感兴趣,平台需要您补足您的身高和联系方式
  (3)平台为了保护你的隐私,需要你删除你的联系方式
  (4)你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。
  (5)你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。

"""
题目九:使用列表存储和操作以下数据

a. 某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄

b. 有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;

c, 平台为了保护你的隐私,需要你删除你的联系方式;

d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。

e, 你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。
"""

# a.某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄
name=input('请输入你的名字')
Gender=input('请输入你的性别')
age=input('请输入你的年龄')
user=[name,Gender,age]
print(user)

# b.有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;
height=input('请输入你的身高')
contact=input('请输入你的联系方式')
user_Add=[height,contact]
user.extend(user_Add)
print(user)

# c, 平台为了保护你的隐私,需要你删除你的联系方式;
user.pop(4)
print(user)

# d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。
Second_name=input('请输入你的花名')
height_new=input('请修改你的身高')
user[0]=Second_name
user[-1]=height_new
print(user)

# e, 你进一步添加自己的兴趣,兴趣至少包含3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。
hobby=['学习','篮球','下班','赚钱']
user.extend(hobby)
print(user)

  题目十: 简述列表与元组的区别:

"""
题目十:简述列表与元组的区别
1、元组不可变,列表可变
2、元组如果只有一个元素必须在元素后加逗号以表示这是一个元组,列表无需此操作
3、元组tuple()类型,列表为list[]
4、列表当中的元素可进行增删改查,元组里面的元素不可增删改

元组与列表相同的:
1、有序,有索引,可以根据索引取值
2、都是可以存储多个数据
3、切片的方式相同
"""

  

2.4 字典与数据类型练习题

  题目十一: 使用字典和列表存储和操作以下数据:
  (1)某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄
  (2)有一个人对你很感兴趣,平台需要您补足您的身高和联系方式
  (3)平台为了保护你的隐私,需要你删除你的联系方式
  (4)你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。
  (5)你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。

"""
题目十一:使用字典和列表存储和操作以下数据

a. 某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄

b. 有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;

c, 平台为了保护你的隐私,需要你删除你的联系方式;

d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。

e, 你进一步添加自己的兴趣,兴趣至少包含 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。
"""
# a.某相亲节目需要获取你的个人信息,请存储你的:姓名、性别、年龄

person_information = {'name':'张三','sex':'女','age':18}

# b.有一个人对你很感兴趣,平台需要您补足您的身高和联系方式;

person_information.update({'high':163,'tel':18624398888})

# c, 平台为了保护你的隐私,需要你删除你的联系方式;

person_information.pop('tel')

# d, 你为了取得更好的成绩,需要取一个花名,并修改自己的身高和其他你觉得需要改的信息。

person_information['flower_name'] = '栀子花'

person_information['high'] = 170

person_information['age'] = 20

# e, 你进一步添加自己的兴趣,兴趣至少包含

# 3个(注意:兴趣是另外一个列表。请将这个列表作为一个成员,添加到原个人信息列表当中,添加到末尾即可。

person_information['intering'] = ['看书','跑步','听歌']

print(person_information)



# 运行结果:
{'name': '张三', 'sex': '女', 'age': 20, 'high': 170, 'flower_name': '栀子花', 'intering': ['看书', '跑步', '听歌']}

Process finished with exit code 0

  题目十二: 利用下划线将列表li=["python","java","php"]的元素拼接成一个字符串,然后将所有字母转换为大写:

"""
题目十二:利用下划线将列表li=["python","java","php"]的元素拼接成一个字符串,然后将所有字母转换为大写。
"""
li = ["python", "java", "php"]

li_1 = " ".join(li)

print(li_1.upper())



# 运行结果:
PYTHON JAVA PHP

Process finished with exit code 0

  题目十三: 有下面几个数据 :

t1 = ("aa",11)
t2= ("bb",22)
li1 = [("cc",11)]

请通过学过的知识点,进行相关操作变为如下字典:

{"aa":11,"cc":11,"bb":22}
"""题目十三:有下面几个数据 :

t1 = ("aa", 11)

t2 = ("bb", 22)

li1 = [("cc", 11)]

请通过学过的知识点,进行相关操作变为如下字典:

{"aa": 11, "cc": 11, "bb": 22}

"""

t1 = ("aa", 11)

t2 = ("bb", 22)

li1 = [("cc", 11)]

dict_1 = {t1[0]:t1[1],li1[0][0]:li1[0][1],t2[0]:t2[1]}

print(dict_1)



# 运行结果:
{'aa': 11, 'cc': 11, 'bb': 22}

Process finished with exit code 0

  题目十四: 简述学过的数据类型,可变类型有哪些,不可变类型有哪些:

"""
题目十四:简述学过的数据类型

数据类型有:int float、bool、str、tuple、list、dict、set

可变类型
list、dict、set 为可变类型

不可变类型

int 、float、 tuple、 bool、 str 都为不可变类型
"""

2.5 流程控制语句练习题

  题目十五: 一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣;如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣和最终价格。

"""
题目十五:一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况)
如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣;如果购买金额大于100元会给20%折扣
编写一程序,询问购买价格,再显示出折扣和最终价格。
"""

price = int(input("请输入你的购买价格:"))

if  50 <= price <= 100:

    print("购买折扣:1折")

    money = int(price*0.9)

    print(f"优惠价格:{money}元")

elif price > 100:

    print("购买折扣:2折")

    money = int(price * 0.8)

    print(f"优惠价格:{money}元")

else:

    print("你购买的商品无优惠")



# 运行结果:
请输入你的购买价格:50
购买折扣:1折
优惠价格:45元

Process finished with exit code 0

  题目十六: 输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况),如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”。

"""
题目十六:输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况)
如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”。
"""

year = int(input("请输入年份:"))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):

    print(f"{year}是闰年")

else:

    print(f"{year}不是闰年")



# 运行结果:
请输入年份:2180
2180是闰年

Process finished with exit code 0

  题目十七: 求三个整数中的最大值:

"""
题目十七:求三个整数中的最大值
"""
num1 = int(input("请输入第一个数字:"))

num2 = int(input("请输入第二个数字:"))

num3 = int(input("请输入第三个数字:"))


if num1 >= num2 and num1 >= num3:
    print(f"{num1}为3个数中最大值")

elif num2 >= num1 and num2 >= num3:
    print(f"{num2}为3个数中最大值")

else:
    print(f"{num3}为3个数中最大值")



# 运行结果:
请输入第一个数字:15
请输入第二个数字:25
请输入第三个数字:35
35为3个数中最大值

Process finished with exit code 0

  题目十八: 编写如下程序:
  a.用户输入1-7七个数字,分别代表周一到周日;
  b.如果输入15,打印对应的“周一”“周五”,如果输入的数字是6或7,打印输出“周末”
  c.如果输入0,退出循环
  d.输入其他内容,提示:“输入有误,请重新输入!”
  提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。

"""
题目十八:编写如下程序:

a.用户输入1-7七个数字,分别代表周一到周日;

b.如果输入1~5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末”

c.如果输入0,退出循环

d.输入其他内容,提示:“输入有误,请重新输入!”

提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。
"""
day={'1':"周一",'2':"周二",'3':"周三",'4':"周四",'5':"周五",'6':"周日",'7': "周日"}

while True:

    a=input('请输入1-7数字:')

    if a in day:

        print(day[a])

    elif a=='0':

        break

    else:

        print('输入有误,请重新输入!')




# 运行结果:
请输入1-7数字:4
周四
请输入1-7数字:6
周日
请输入1-7数字:0

Process finished with exit code 0

  题目十九: 使用for循环打印九九乘法表。

"""
题目十九:使用for循环打印九九乘法表。

"""
for a in range(1,10):

    for b in range(1,a+1):

        print(f"{b}*{a}={a * b}",end='\t')

    print()




# 运行结果:
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

Process finished with exit code 0

  题目二十: 实现冒泡排序,具体需求:利用for循环,完成a=[1,7,4,89,34,2]的排序(小的数字排前面,大的排后面),不能使用sort、sorted等内置函数或方法:

"""
题目二十:实现冒泡排序,具体需求:利用for循环,完成a=[1,7,4,89,34,2]的排序(小的数字排前面,大的排后面),不能使用sort、sorted等内置函数或方法:

"""
a=[1,7,4,89,34,2]

for j in range(1,len(a)):

    for i in range(0,len(a)-j): 

        if a[i]>a[i+1]: 

          a[i],a[i+1]=a[i+1],a[i]

        print(a)




# 运行结果:
[1, 7, 4, 89, 34, 2]
[1, 4, 7, 89, 34, 2]
[1, 4, 7, 89, 34, 2]
[1, 4, 7, 34, 89, 2]
[1, 4, 7, 34, 2, 89]
[1, 4, 7, 34, 2, 89]
[1, 4, 7, 34, 2, 89]
[1, 4, 7, 34, 2, 89]
[1, 4, 7, 2, 34, 89]
[1, 4, 7, 2, 34, 89]
[1, 4, 7, 2, 34, 89]
[1, 4, 2, 7, 34, 89]
[1, 4, 2, 7, 34, 89]
[1, 2, 4, 7, 34, 89]
[1, 2, 4, 7, 34, 89]

Process finished with exit code 0

  

2.6 函数练习题

  题目二十一: 定义一个函数 def remove_element(a_list):,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]去除重复元素。

"""
题目二十一:定义一个函数 def remove_element(a_list):,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]去除重复元素。
"""

def remove_element(a_list):
    di = {}
    for i in a_list:
        num = a_list.count(i)
        di[i] = num
    return list(di.keys())

li = [10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]
new_li = remove_element(li)
print(new_li)

  题目二十二: 使用函数完成以下操作
  输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数
  低于18.5: 过轻 18.5-25: 正常 25-28: 过重 28-32: 肥胖 高于32: 严重肥胖

"""
题目二十二:使用函数完成以下操作
输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数
低于18.5: 过轻 18.5-25:   正常 25-28:      过重 28-32:      肥胖 高于32:   严重肥胖
"""

def get_bmi(height, weight):

    bmi = weight / height ** 2

    if bmi < 18.5:

        return f'您的bmi为{round(bmi, 1)},低于18.5:过轻'

    elif 18.5 <= bmi < 25:

        return f'您的bmi为{round(bmi, 1)},18.5-25:正常'

    elif 25 <= bmi < 28:

        return f'您的bmi为{round(bmi, 1)},25-28:过重'

    elif 28 <= bmi <= 32:

        return f'您的bmi为{round(bmi, 1)},28-32:肥胖'

    elif  bmi > 32:

        return f'您的bmi为{round(bmi, 1)},高于32:严重肥胖'

  题目二十三: 定义函数,将输入的所有数字相乘之后对20取余数,用户输入的数字个数不确定。

"""
题目二十三:定义函数,将输入的所有数字相乘之后对20取余数,用户输入的数字个数不确定。
"""
def get_multiplication(*args):

    multi = 1

    for item in args:

        multi = multi * item

    remainder = multi % 20

    return remainder

if __name__ == '__main__':

    li = []

    while True:

        num = input('请输入一个数据,输入q代表结束:')

        if num != 'q':

            li.append(int(num))

            print(li)

        else:

            break

    print('输入的所有数字相乘之后对20取余数为:',get_multiplication(*li))

  题目二十四: 一个足球队在寻找年龄在15岁到22岁的女孩做拉拉队员(包括15岁和22岁)加入。编写一个程序,根据用户的姓名,性别和年龄,打印这个人是否可以加入球队,询问10次后,打印满足条件的所有人的名字。(要求:定义函数处理逻辑)

"""
题目二十四:一个足球队在寻找年龄在15岁到22岁的女孩做拉拉队员(包括15岁和22岁)加入。
编写一个程序,根据用户的姓名,性别和年龄,打印这个人是否可以加入球队,询问10次后,打印满足条件的所有人的名字。
(要求:定义函数处理逻辑)
"""

def find_mail_soccer():

    i = 1
    all_name = ''
    while i <= 3 :

        name = input('请输入姓名:')

        sex = input('请输入性别(女生:m,男生:f):')

        age = int(input('请输入年龄:'))

        if (age >= 15 and age <= 22) and sex == 'm':

            all_name = all_name + name + ','

        i += 1

    return all_name

if __name__ == '__main__':

    all_name = find_mail_soccer()

    print('能加入足球队的所有人的名字如下:',all_name)

  题目二十五: 通过定义一个计算器函数,调用函数传递两个参数,然后提示选择【1】加 【2】减【3】乘 【4】除 操作,选择之后返回对应操作的值。

"""
题目二十五:通过定义一个计算器函数,调用函数传递两个参数,然后提示选择【1】加 【2】减【3】乘 【4】除 操作
选择之后返回对应操作的值。
"""

def plus(a,b):

    result = a + b

    return result


def subtraction(a,b):

    result = a - b

    return result


def multiplication(a,b):

    result = a * b

    return result


def division(a,b):

    if b != 0:

        result = a / b

    else:

        result = '除数为0,不能进行除法运算'

    return result

def calculator(a, b):

    result = 0

    operation = input('请问您想进行什么操作:【1】加,【2】减,【3】乘,【4】除:')

    if operation == '1':

        result = plus(a,b)

    elif operation == '2':

        result = subtraction(a,b)

    elif operation == '3':

        result = multiplication(a,b)

    elif operation == '4':

        result = division(a, b)

    return operation,result

if __name__ == '__main__':

    operation = {'1':'加法', '2':'减法', '3':'乘法', '4':'除法'}

    result = calculator(3,8)

    print(f'进行{operation[result[0]]}运算的结果是:{result[1]}')

2.7 文件与模块操作练习题

  题目二十六: 把以下字典分行添加到文件当中,得到一个 info.txt 的文件:

person_info = [
  {
       "name": "张三",
       "age": 22,
       "gender": "男",
       "hobby": "学习",
       "motto": "学习使我快乐"
  },
  {
       "name": "李四",
       "age": 20,
       "gender": "女",
       "hobby": "拿30K offer",
       "motto": "下次拿个40K的"
  },
]
"""题目二十六:把以下字典分行添加到文件当中,得到一个 info.txt 的文件:"""

person_info = [
  {

       "name": "张三",

       "age": 22,

       "gender": "男",

       "hobby": "学习",

       "motto": "学习使我快乐"

  },

  {

       "name": "李四",

       "age": 20,

       "gender": "女",

       "hobby": "拿30K offer",

       "motto": "下次拿个40K 的"

  },

]

# 方法一

with open('info.txt', 'a', encoding='utf-8') as f:

    for key in person_info[0]:

        f.write(str(key) + ',')

    f.write('\n')

    for i in range(2):

        for value in person_info[i].values():

            f.write(str(value) + ',')

        f.write('\n')

  题目二十七: cases.txt 文件中有 2 行数据:把txt里面的两行内容取出然后保存到一个列表和字典当中:(可定义函数)

[
  {
       'url':'/futureloan/mvc/api/member/register',
       'mobile':'18866668888',
       'pwd':'123456'
  },
  {
       'url':'/futureloan/mvc/api/member/recharge',
       'mobile':'18866668888',
       'amount':'1000'
  }
]
"""题目二十七:cases.txt 文件中有 2 行数据:把txt里面的两行内容取出然后保存到一个列表和字典当中:(可定义函数)"""

def analyse_str(line_str):

    res_dict = {}

    line_list = line_str.split('@')

    for temp in line_list:

        temp_list = temp.split(':')

        res_dict[temp_list[0]] = temp_list[1]

    return res_dict



def read_file(filename):

    res_list = []

    with open(filename, 'r') as f:

        text_list = f.readlines()

    for temp in text_list:

        res_list.append(analyse_str(temp.replace('\n', '')))

    return res_list



print(read_file('cases.txt'))

  题目二十八: 当前目录下已经有一个子目录 common, 请在 run.py 中编写代码,在 common 目录下创建一个叫 excel.py 的模块

-- data/
-- common/
-- run.py
"""题目二十八:当前目录下已经有一个子目录 common, 请在 run.py 中编写代码,在 common 目录下创建一个叫 excel.py 的模块"""

import os

path = os.path.dirname(__file__)

new_file_path = os.path.join(path, 'common', 'excel.py')

print(new_file_path)

f = open(new_file_path, 'w')

f.close()

2.8 异常捕获练习题

  题目二十九: 去生鲜超市买橘子程序
  a.收银员输入橘子的价格,单位:元/斤
  b.收银员输入用户购买橘子的重量,单位:斤
  c.计算并且 输出 付款金额
  d.使用捕获异常的方式,来处理用户输入无效数据的情况

"""
题目二十九:去生鲜超市买橘子程序
a.收银员输入橘子的价格,单位:元/斤
b.收银员输入用户购买橘子的重量,单位:斤
c.计算并且 输出 付款金额
d.使用捕获异常的方式,来处理用户输入无效数据的情况
"""

try:
    cashier_cou = int(input("请输入橘子的价格:"))
    cashier_we = int(input("请输入橘子的重量:"))
    orang_pay = cashier_cou * cashier_we
    print(f"您购买的橘子一共消费{orang_pay}元")
except ValueError:
    print("检测到您的输入非法")

  题目三十: 列出你知道的异常类型,并编写一个异常例子捕获它们:

"""
题目三十:列出你知道的异常类型,并编写一个异常例子捕获它们:
"""
try:
    a = [1,2]
    a[8]
    
 except IndexError:

    pass

  题目三十一: 总结异常类型的知识点:

"""
题目三十一:总结异常类型的知识点

1、	如果try当中出现某句异常,直接跳转到except语句
2、	异常出现了,如果没有捕获,出现报错,终止运行
3、	如果使用了try 和except,执行了except就不会出现终止
4、	尽可能使用指定的错误类型进行异常捕获,指定类型能够更精准的捕获,能够更好的处理
5、	finally:
无论如何,不管except是否执行,都会运行代码
"""

2.9 类与对象练习题

  题目三十二: 类属性和实例属性的区别是什么?

"""
题目三十二:类属性和实例属性的区别是什么?
类属性是整个类的特征,所有成员都一致,所有对象共有的特征,获取类属性: 类名.属性名
实例属性表示这个成员,物体个人具备的属性,属于个体具备的特征,每个对象特有的,定义:self.属性名=属性值
"""

  题目三十三: 类属性如何定义?

"""
题目三十三:类属性如何定义?
"""
class Car:

    wheel = True   # 类属性

    lunzi_number = 4  # 类属性

    engine = True     # 类属性

    material = ['铁','橡胶','塑料','玻璃']  # 类属性

# 获取类属性

print(Car.wheel)

print(Car.engine)

print(Car.material)

  题目三十四: 封装一个学生类, 属性:身份(学生),姓名,年龄,性别,英语成绩,数学成绩,语文成绩, 职责。如果是类属性请提前定义,如果是实例属性请初始化以后添加这个属性的值。

"""
题目三十四:封装一个学生类, 属性:身份(学生),姓名,年龄,性别,英语成绩,数学成绩,语文成绩, 职责。
如果是类属性请提前定义,如果是实例属性请初始化以后添加这个属性的值。
"""
class Student:

    id = '学生'

    duty ='study'

    def __init__(self,name,age,sex,english_score,mathe_score,Chinese_score):

        self.name = name

        self.age = age

        self.sex = sex

        self.english_score = english_score

        self.mathe_score = mathe_score

        self.Chinese_score = Chinese_score



student = Student('张三',18,'女',98,80,50)

print(student.name)

  题目三十五: 给你生活中遇到的 3 种事物分别定义 3 个类,并分别添加几个类属性。

"""题目三十五:给你生活中遇到的 3 种事物分别定义 3 个类,并分别添加几个类属性。"""

class Earphone:

    function = 'listen_music'

    earhole_num = 2


class Teacher:

    duty = 'teaching'

    knowledge = '知识渊博'


class Shoes:

    function = 'wearing'

    number = 2

  题目三十六: 定义一个登录的测试用例类LoginTestCase 登录接口url地址为:“http://www.xxxx.com/login” 接口请求方法全部为:“post” 、 请定义测试用例的属性,自行分辨下列属性,应该定义为类属性还是实例属性

  • 属性:用例编号 url地址 请求参数 请求方法 预期结果 实际结果
"""题目三十六:定义一个登录的测试用例类LoginTestCase 登录接口url地址为:"http://www.xxxx.com/login" 接口请求方法全部为:"post" 、
请定义测试用例的属性,自行分辨下列属性,应该定义为类属性还是实例属性

- 属性:用例编号 url地址 请求参数 请求方法 预期结果 实际结果"""

class LoginTestCase:

    url = 'http://www.xxxx.com/login'

    method = 'post'

    excepted = 'ok'

    def __init__(self,case_id,request_parameters,result):

        self.case_id = case_id

        self.request = request_parameters

        self.result = result

  题目三十七: 定义一个手机类:

  1. 定义两个实例方法,让手机具有打电话和录音的方法

  2. 打电话的时候可以录音,也可以不录音。(方法调用其他方法,并通过参数控制是否调用)

"""
题目三十七:定义一个手机类:
1. 定义两个实例方法,让手机具有打电话和录音的方法
2. 打电话的时候可以录音,也可以不录音。(方法调用其他方法,并通过参数控制是否调用)
"""

chioce = int(input('请选择是否录音:1:是,0:否 :'))

# 定义一个手机类
class Mobile:

     # 初始化函数,定义一个选择是否录音的参数
    def __init__(self,touch1):

        self.touch =touch1



    # 定义一个打电话的方法
    def call(self):

        print('正在打电话!!')

        if self.touch ==1:

            self.recording()



     # 定义一个录音的方法
    def recording(self):

         print('正在录音!!')



# 根据选择是否录音,调用call方法
Mobile(chioce).call()

  题目三十八: 简述类方法和实例方法,静态方法

"""
题目三十八:简述类方法和实例方法,静态方法

类方法:可以通过类调用函数  必须加 @classmethod
实例方法:在类里面定义一个函数 例: def run(self, other_args), 方法调用时必须加上前缀 对象.方法()
静态方法:没有固定参数 ,和类、对象没有直接关系 必须加@staticmethod
"""

  题目三十九: 简述类属性和实例属性

"""
题目三十九:简述类属性和实例属性

类属性:表示类或对象的某种特征,整个类都具备的属性;
实例属性:表示这个成员,物体个人具备的属性;
"""

  题目四十: 定义一个 ExcelHandler 类,所有方法不需要实际操作实现
  初始化传入 文件路径。
  定义打开 excel 方法。
  定义获取 sheet 表格方法,根据 名称获取。
  定义读取 sheet 表格数据的方法。 (读取需要先打开,再获取表格。)
  定义关闭文件方法。

"""
题目四十:定义一个 ExcelHandler 类,所有方法不需要实际操作实现

初始化传入 文件路径。
定义打开 excel 方法。
定义获取 sheet 表格方法,根据 名称获取。
定义读取 sheet 表格数据的方法。 (读取需要先打开,再获取表格。)
定义关闭文件方法。
"""
class ExcelHandler:

    # 1、初始化传入 文件路径。

    def __init__(self,url,sheet_name):

        self.url =url

        self.name =sheet_name



    # 2、定义打开 excel 方法

    def open_excel(self):

        print(f'{self.url}打开excel文件')



    # 3、定义获取 sheet 表格方法,根据 名称获取

    def open_sheet(self):

        print(f'正在打开{self.name}sheet表格')



    # 4、定义读取 sheet 表格数据的方法

class readdata(ExcelHandler):

    def read_sheet(self):

        super().open_excel()

        super().open_sheet()

        print(f'正在读取{self.name}sheet表格')



    # 5、定义关闭文件方法

    def close_excel(self):

        print('关闭excel文件')



# 定义一个对象

file1 =readdata('excel.txt','testcase')

# 调用读取sheet数据方法

file1.open_excel()

file1.open_sheet()

file1.read_sheet()

file1.close_excel()

标签:题目,Python,self,列表,测试,自动化,print,输入,属性
来源: https://blog.csdn.net/qq_38679705/article/details/122616306

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有