目录
1.1定义一个函数,要求:有三个形参,可以不传递参数,可以传递一个参数,可以传递两个参数,可以传递三个参数
1.2 定义一个函数,要求:有三个形参,第一个参数必须以位置参数传递,第二个和第三个参数必须以关键字参数传递
1.定义函数
1.1定义一个函数,要求:有三个形参,可以不传递参数,可以传递一个参数,可以传递两个参数,可以传递三个参数
def add(num1=None, num2=None, num3=None): #定义函数
print(num1, num2, num3)
add() #调用函数,并给定不同的参数
add(11)
add(11, 22)
add(11, 22, 33)
None None None #输出
11 None None
11 22 None
11 22 33
1.2 定义一个函数,要求:有三个形参,第一个参数必须以位置参数传递,第二个和第三个参数必须以关键字参数传递
def func_data(num1, /, *, num2, num3): #定义函数
print(num1, num2, num3)
func_data("zhangsan", num2=11, num3=22) #调用函数,并给定参数
zhangsan 11 22 #输出
2.lambda使用:
fruit_list = ['watermelon', 'apple', 'grape', 'mango', 'pineapple', 'blueberry', 'strawberry']
对fruit_list进行排序,要求:按照每个元素的最后一个字符进行排序,如果相等,按照倒数第二个字符排序
fruit_list = ['watermelon', 'apple', 'grape', 'mango', 'pineapple', 'blueberry', 'strawberry']
fruit_list.sort(key=lambda arg: arg[::-1]) # 将列表倒序排列
print(fruit_list)
['apple', 'pineapple', 'grape', 'watermelon', 'mango', 'blueberry', 'strawberry']
3.递归函数的使用(选做)
lst = [
{'name': '小红', 'sub': [{'name': '小明', 'sub': [{'name': '小花'}]}, {'name': '小黑'}]}
]
这是一个嵌套列表,但是嵌套的可能有n层,如何运用递归函数得到列表中所有的name值,并且有层级关系的名字需要拼接起来,得到的结果是['小红', '小红/小明', '小红/小明/小花', '小红/小黑']
lst = [{'name': '小红', 'sub': [{'name': '小明', 'sub': [{'name': '小花'}]}, {'name': '小黑'}]}]
def func_lst(lst, name=''):
result = []
for dic in lst:
if name:
names = name + '/' + dic['name']
else:
names = dic['name']
result.append(names)
sub = dic.get('sub')
if sub:
result += func_lst(sub, names)
return result
print(func_lst(lst))
['小红', '小红/小明', '小红/小明/小花', '小红/小黑']