AI+软件测试第二篇(黑马)-第2天-python
·
251.集合的介绍
和字典的区别:字典保存数据用的是键和值,而集合里保存值,集合中的值永远不重复,集合中的值不能用下标去获取,所以常常用集合对数据去重复
场景:用来描述不重复的可变类型的数据集。常常用来去重复,集合是无序的


info = [11,22,11,33,44,22,11]
print(set(info))
print(list(set(info))) #变回列表
info1="aabbddccdd"#连接:字符串.join(一般为列表)
aa=set(info1)
print(aa) #变回列表
bb="".join(aa) #将集合中的元素按照字符串连接起来(用空字符串连接)
print(bb) #变回列表
print(type(bb))
#将集合转换为元组需要用tuple()函数
252.序列类型总结



键值对是一个元素
253.函数的介绍


形参

这里是实参

def phone_number(phone):
if phone == "13488888888":
print("账号成功")
else:
print("账号失败")
phone_number("13488888888") # 调用函数并传入参数
phone_number("13488888889") # 调用函数并传入参数
254.函数练习案例

test_data = [
{"username":"13488888888","password":"123456"},
{"username":"","password":"123456"},
{"username":"13800000001","password":""},
]
#定义函数
def login(phone,password):
if phone == "13488888888" and password == "123456":
print("登录成功")
else:
print("账号或密码错误")
#调用函数
#1.获取手机号密码
for i in test_data:
phone = i["username"]
password = i["password"]
#2.调用函数
login(phone,password)
255.带有返回值的函数


如果return后还有代码就不会被执行了
def phone_number(phone):
if phone == "13488888888":
return "账号成功"
else:
return "账号错误"
result = phone_number("13488888888")
print(result)
256.导入模块应用

#导模块
import random
#使用工具:模块名.工具
num = random.randint(1,10)
print(num)
#导模块
from random import randint
#使用工具:模块名.工具
num = randint(1,10)
print(num)
257.导包应用

包和文件夹可以转换,包实际上就是一个特殊的文件夹
三级关系:包(文件夹)-->模块(里面的文件)-->工具(文件里面的变量函数等)
258.方法介绍

259.变量的引用



age = 18
print(id(age))
age1 = 18
print(id(age1))
#输出的地址是一样的
查看的作用是什么?
证明这个变量是不是同一个变量,或者是不是代表着同一个值,最好的方式就是查内存地址


260.数据的可变和不可变

#可变类型
list1=[1,2,3]
print(id(list1))
list1.append(4)
print(id(list1))
#发现地址没有变
num1=100
print(id(num1))
num1=101
print(id(num1))
#这两者内存地址不同
261.变量进阶总结



#全局变量
num = 100
def demo1():
result = num + 10
print(result)
def demo2():
global num #声明全局变量
num = 200
result = num + 10
print(result)
def demo3():
result = 10 + num
print(result) #调用全局变量
demo1()
demo2()
demo3()
262.缺省参数的函数

#定义学生信息
def student_info(name,age,sex="男"):
print(f"姓名:{name},年龄:{age},性别:{sex}")
student_info("张三",18,"女") #调用函数
student_info("李四",20) #调用函数
但是这个缺省参数必须放到其他形参的后面
263.多值参数函数


def sum_numbers(*args): #arguments英文意思是参数,args是可变参数,可以传入任意数量的参数
total = 0
#args是一个元组类型的数据
for i in args:
total += i
return total
result = sum_numbers(1,2,3,4,5,6,7,8,9,10)
print(result) #输出结果:55
print(sum_numbers())
#多值参数:可以不传递参数,多则不限定个数
264.元组的拆包

def sum_numbers(*args): #arguments英文意思是参数,args是可变参数,可以传入任意数量的参数
total = 0
#args是一个元组类型的数据
for i in args:
total += i
return total
nums = 1,2,3,4,5,6,7,8,9,10
result = sum_numbers(*nums) #解包,将nums中的元素一个个传递给sum_numbers函数
print(result) #输出结果:55
265.匿名函数介绍

def sum_numbers(num1,num2):
return num1+num2
print(sum_numbers(10,20))
#用匿名函数
result = lambda num1,num2:num1 + num2
print(result(20,20))
#用匿名函数的优点
#1.简化函数定义
#2.匿名函数常常作为其他方法的参数使用
266.匿名函数的应用案例
#要求按照年龄对用户信息数据进行排序
user_list = [
{"name": "张三", "age": 22,'title':'测试工程师'},
{"name": "李四", "age": 24,'title':'开发工程师'},
{"name": "王五", "age": 21,'title':'测试工程师'}
]
#user_list.sort(key=lambda x:x['age'])
aa = lambda x:x['age']
user_list.sort(key=aa,reverse=True)
user_list.sort(key=aa)
#key参数:按照列表中某个元素某项指标进行排序,必须传递函数类型的参数
#列表元素排序
list1 = [11,22,2,43,23]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
267.捕获异常介绍



"""
需求:
获取用户从键盘输入的数据
转换数据类型为整数
数据转换类型正确时,输出数据内容
数据转换类型错误时,提示输入正确数据
"""
try:
num = input("请输入一个数字:")
num = int(num)
print(num)
except:
print("输入错误,请输入正确数字")
#好处,代码报错不影响执行

try:
num = input("请输入一个数字:")
num = int(num)
print(num)
except ValueError:
print("输入错误,请输入正确数字")

try:
num = input("请输入一个数字:")
num = int(num)
print(num)
except Exception as e:
print(f"出错的信息是{e}")
268.捕获异常的完整语法

try:
num = input("请输入一个数字:")
num = int(num)
print(num)
except Exception as e:
print(f"出错的信息是{e}")
finally:
print("程序结束")
写函数:
def test():
try:
num = input("请输入一个数字:")
num = int(num)
print(num)
except Exception as e:
print(f"出错的信息是{e}")
#无论是否有异常都需要执行的操作
finally:
print("程序结束")
269.主动抛出异常
默认是python解释器抛出异常,有时候我们希望是自己主动抛出异常


"""
需求:
定义input_password函数,提示用户输入密码
如果用户输入长度<8,抛出异常
如果用户输入长度>=8,返回用户输入的密码
"""
def input_password():
try:
pwd = input("请输入密码:")
if len(pwd) < 8:
raise Exception("密码长度不够")
else:
return pwd
except Exception as e:
print(e)
input_password() #调用函数
270.python_day03总结
271.面向对象引入
一、自动化框架前置基础
272.面向对象介绍


info = ""
info = str()
= []
= list()
273.面向对象类设计
驼峰命名:MyDog


274.面向对象的语法介绍


#面向对象示例
#1.定义类(三要素:类名、属性、方法)
#类名:Cat
#属性:无
#方法:吃饭、喝水
class Cat:
def eat(self):
print("吃饭")
def drink(self):
print("喝水")
#创建对象
cat1 = Cat()
#调用方法
cat1.eat()
#另一只猫
cat2 = Cat()
cat2.drink()
#两只猫是同一只猫吗?怎么证明?
#查内存地址的函数是id()
print(id(cat1))
print(id(cat2)) #不同,证明不是同一只猫
275.self的作用

使用id()可以查看对象内存地址

276.对象设置属性

class Cat:
def __init__(self,name):
self.name = name #属性名 = 属性值
def eat(self):
print(f"{self.name}吃鱼")
def drink(self):
print(f"{self.name}喝水")
#2.创建对象
cat1 = Cat("tom")
print(cat1.name)
cat1.eat()
cat2 = Cat("大黄")
print(cat2.name)
cat2.drink()
277.面向对象的三大特征


封装方便管理,继承提高效率,多态增强灵活性
278.面向对象案例1

class Person:
def __init__(self,name,weight):
self.name = name
self.weight = weight
def eat(self):
print("吃饭")
def run(self):
self.weight -= 1 #体重减1kg
print(f"跑步,当前体重为:{self.weight}kg")
#创建对象
p1 = Person("张三",80)
p1.run()
p1.run()
p1.run()
p2 = Person("小红",50)
p2.eat()
279.模拟登陆页面练习
class loginpage:
def __init__(self,username,passwprd,verify_code):
self.username = username
self.password = passwprd
self.verify_code = verify_code
def login(self):
print("--------正在登录--------")
print(f"用户名:{self.username}")
print(f"密码:{self.password}")
print(f"验证码:{self.verify_code}")
print("登录成功")
username = input("请输入用户名:")
password = input("请输入密码:")
verify_code = input("请输入验证码:")
login1 = loginpage(username,password,verify_code)
login1.login()
280.乘客和车辆练习题补充

#被使用的对象应该放在前面
class Person:
def __init__(self, name):
self.name = name
p1 = Person("小明")
p2 = Person("小红")
class Bus:
def __init__(self, type_name,seat_count):
self.type_name = type_name
self.seat_count = seat_count
self.member_list = []
def add_bus(self,Person):
if len(self.member_list) < self.seat_count:
self.member_list.append(Person.name)
self.seat_count -= 1
print(f"类型:{self.type_name},座位数:{self.seat_count},{self.member_list}")
else:
print("车满了")
pass
def sub_bus(self,Person):
if len(self.member_list) > 0:
self.member_list.remove(Person.name)
self.seat_count += 1
print(f"类型:{self.type_name},座位数:{self.seat_count},{self.member_list}")
else:
print("车空了")
pass
b1 = Bus("大客车", 10)
b1.add_bus(p1)
b1.add_bus(p2)
b1.sub_bus(p1)
#被使用的对象应该放在前面
class Person:
def __init__(self, name):
self.name = name
p1 = Person("小明")
p2 = Person("小红")
p3 = Person("小李")
p4 = Person("小王")
p5 = Person("小周")
p6 = Person("小赵")
p7 = Person("小钱")
p8 = Person("小孙")
p9 = Person("小李")
p10 = Person("小王")
p11 = Person("小李")
class Bus:
def __init__(self, type_name,seat_count):
self.type_name = type_name
self.seat_count = seat_count
self.free_count = seat_count
self.member_list = []
def add_bus(self,Person):
if len(self.member_list) < self.seat_count:
self.member_list.append(Person.name)
self.free_count -= 1
print(f"类型:{self.type_name},座位数:{self.free_count},{self.member_list}")
else:
print("车满了")
pass
def sub_bus(self,Person):
if len(self.member_list) > 0:
self.member_list.remove(Person.name)
self.free_count += 1
print(f"类型:{self.type_name},座位数:{self.free_count},{self.member_list}")
else:
print("车空了")
pass
b1 = Bus("大客车", 10)
b1.add_bus(p1)
b1.add_bus(p2)
b1.add_bus(p3)
b1.add_bus(p4)
b1.add_bus(p5)
b1.add_bus(p6)
b1.add_bus(p7)
b1.add_bus(p8)
b1.add_bus(p9)
b1.add_bus(p10)
b1.add_bus(p11)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)