python自动化测试-D5-学习笔记之一(函数补充,内置函数,map,filter,eval)

#  上节课补充:1、写代码的时候,少用全局变量:1、全局变量占内存  2、不安全
# 函数如果有多个return的值,函数会把这些值放在元组里
def hello(a,b,c,d):
return a,b,c,d
# res = hello('a','b','c','d')
# print(res) #打印结果是(a,b,c,d)

# 把数组元素里的int型,变成字符串格式放到文件里。文件不能直接写int类型 传统方式用for循环,现在用 列表推导式

# nums = [0,1,2,3,4,5,6,7]
# new_nums = [str(x) for x in nums]
# print(new_nums)

#习题,把 a =1,b=2,交换
# 传统方式 引入第三个变量,然后交换
a = 1
b = 2
# tmp = 0
# tmp = a
# a = b
# b = tmp
# print(a,b)
#在python中有更简单的方式:
# b,a = a,b #交换两个变量的值
# print(a,b)
# 不定义第三方变量的解决方法:仅限于int类型
a = a + b
b = a - b
a = a - b
print(a,b)

# 一个函数只实现一个功能
# 减少重复代码

# 函数也是一个变量

def say (name):
print(name)

ybq = say
ybq('sherry')

# 常量 是一个不会变的变量,常量一般用大写字母定义

# 购物车作业的代码优化 利用函数集变量
def add():
print('添加商品')
def show():
print('查看商品')
def del_p():
print('删除商品')

choice = input('请输入选择1,2,3').strip()

menu = {
'1':add,
'2':show,
'3':del_p
}
if choice in menu:
menu[choice]() # 函数集变量,适用于函数没有参数,或者参数一样的情况
else:
print('输入错误')

# 内置函数
# len type print input str

# print(all([1, 2, 3, 4])) # 判断可迭代的对象里面的值是否都为真
# print(any([0, 1, 2, 3, 4])) # 判断可迭代的对象里面的值是否有一个为真
# print(bin(100)) # 十进制转二进制
# ejz = bin(100)
# print(ejz.replace('0b',''))
# print(chr(65)) # 打印数字对应的ascii
# print(ord('A')) # 打印字符串对应的ascii码
# print(dir(1)) # 打印传入对象的可调用方法
# print(eval('[]')) # 执行python代码,只能执行简单的,定义数据类型和运算
# code = 'def func(a):pass'
# print(eval(code))
# code = '''def a():print('aa')'''
# print(exec(code)) # 执行python代码
#zip
# print(filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35])) # 把后面的迭代对象根据前面的方法筛选
# print(map(lambda x: x > 5, [1, 2, 3, 4, 5, 6]))

ids= [1,2,3,4,7,8,0,-1]
names=['小黑','小白','小黄','小绿']
names1=['小黑','小白','小黄','小绿']

# for id,name,s in zip(ids,names,names1):
# print(id,name,s)
print(sorted('0123450'))#升序
print(sorted(ids,reverse=True))#降序
round(1.987123,5)# 保留几位小数


map 和 filter
def func(a): #0 1 2
if a%2==0:
return True
else:
return False
nums = [x for x in range(11)]
# res = filter(func,nums)
# print(list(res))
#filter也是帮你循环调用函数的,filter只保存结果返回真的。

# map
# all_res = []
# for num in nums:
# res = func(num)
# all_res.append(res)
#
# res = map(func,nums) #
#
# print(list(res))
#循环调用函数,然后把每次函数处理的结果,放到一个list里面返回



eval函数就是实现list、dict、tuple与str之间的转化
str函数把list,dict,tuple转为为字符串
# 字符串转换成列表
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))
b = eval(a)
print(b)

# 字符串转换成字典
a = "{1: 'a', 2: 'b'}"
print(type(a))
b = eval(a)
print(type(b))
print(b)

# 字符串转换成元组
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
print(type(a))
b=eval(a)
print(type(b))
print(b)

原文地址:https://www.cnblogs.com/blackbird0423/p/8321868.html