# 函数:
# 一、少用全局变量
# 1.不安全,易被修改
# 2.运行用占中内存
# 二、函数返回多个值,如果有多个值返回时,return的结果以元组格式返回
def hello(a, b, c, d):
return a, b, c, d
# 三、列表推导式
res = hello('ybq', 'mpp', 'zhx', 'lby')
print(res)
nums = [0, 1, 3, 4, 5, 6, 7]
new_nums = [x - 1 for x in nums]
print(new_nums)
# 四、一个函数只实现一个功能,代码越少越好
#
# 五、常量
# 常量就是一个不会变的变量。
# 常量名全部用大写字母来定义。
# 变量交换
a = 2
b = 1
# b = 1 a = 2
# b,a = a,b #交换两个变量的值
# print(a,b)
a = a + b # 3
b = a - b # 2
a = a - b # 3-2
# 内置函数
# 函数即变量
# 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', '')) # 去除转二进制之后默认增加的0b字符
print(chr(65)) # 打印数字对应的ascii
print(ord('A')) # 打印字符串对应的ascii码
print(dir(1)) # 打印传入对象的可调用方法
print(eval('[]')) # 执行python代码,只能执行简单的,定义数据类型和运算
code = '''def a():print('aa')'''
print(exec(code)) # 执行python代码
print(sorted('0123450')) # 升序
ids = [1, 2, 3, 4, 7, 8, 0, -1]
print(sorted(ids, reverse=True)) # 降序
round(1.987123, 5) # 保留几位小数
names = ['小黑', '小白', '小黄', '小绿']
names1 = ['小黑', '小白', '小黄', '小绿']
# zip循环取数
for id, name, s in zip(ids, names, names1): # 循环取数多个,以少的为准
print(id, name, s)
# filter循环调用函数,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))
# map循环调用函数,把每次调用函数处理的结果放到一个List中返回
all_res = []
for num in nums:
res = func(num)
all_res.append(res)
res = map(func, nums)
print(list(res))
# 函数即变量
def add():
print('添加商品')
def view():
print('查看商品')
def delete():
print('删除商品')
choice = input('请输入选择 1、2、3、').strip()
menu = {
'1': add, # 直接通过变量调用函数
'2': view,
'3': delete
}
if choice in menu:
menu[choice]() # 适合用于函数没有参数,或者参数是一样的情况下。
else:
print('输入错误')