函数的进阶

三. 今日主要内容
1. 动态参数
位置参数的动态参数: *args
关键字参数的动态参数 : **kwargs
顺序:
位置,*args,默认值,**kwargs
在形参上*聚合, **聚合
在实参上*打散, **打散
2. 命名空间和作用域
命名空间:
1. 内置命名空间: python解释内部运行时的变量函数
2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数
3. 局部命名空间: 在函数内部声明的变量和函数.
作用域:
1.全局作用域:内置+全局
2.局部作用域:局部
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字

3. global和nonlocal
global: 把全局变量拿到局部来用.
nonlocal: 把离他最近的一层的变量拿过来.不会找全局

 1 # 2.写函数,接收n个数字.,求这些数字的和(动态传参)
 2 """
 3 
 4 def func(*n):
 5     s = 0
 6     for i in n:
 7         s += i
 8     return s
 9 
10 
11 res = func(1, 2, 6, 8, 5, 9, 6, 5, 11, 8, 69, 85, 45, 22, 33)
12 print(res)
13 """
14 # 3.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
15 """
16 a = 10
17 b = 20
18 
19 
20 def test5(a, b):
21     print(a, b)
22 
23 
24 c = test5(b, a)
25 print(c)
26 #  a = 20 b =10 c=None
27 """
28 # 4.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
29 """
30 a = 10
31 b = 20
32 
33 
34 def test5(a, b):
35     a = 3
36     b = 5
37 
38 
39 print(a, b)
40 c = test5(b, a)
41 print(c)
42 # 答案  10 20 None
43 """
44 # 5.写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元组,集合等)
45 # 将每个实参的每个元素一次添加到函数的动态参数args里面
46 # 例如传入函数两个参数[1,2,3],(22,33)最终args为(1,2,3,22,33)
47 """
48 
49 def func(*args):
50     s = []
51     for i in args:
52         s.append(i)
53 
54     print(s)
55 
56 
57 func(*[1, 2, 3], *(22, 33))
58 """
59 # 8.写函数,接收两个数字参数,将较小的数字返回
60 """
61 
62 
63 def func(a, b):
64     return a if a < b else b
65 
66 
67 res = func(555, 6666)
68 print(res)
69 """
70 # 9.写函数,接收一个参数(此参数必须是可迭代对象),将可迭代对象的每个元素以"_"相连接,形成新的字符串,并返回
71 #  例如传入的可迭代对象为[1,'男孩','wusir']返回的结果是 1_男孩_wusir
72 """
73 
74 def func(*args):
75     s = ""
76     for i in args:
77         s = s + "_" + str(i)
78     return str(s).replace("_", "", 1)
79 
80 
81 print(func(*[1, '老男孩', 'wusir']))
82 """
83 # 10.写函数,传入n个数,返回字典{'max':最大值,'min':最小值}
84 # 例如 min_max(2,5,7,8,4)
85 """
86 
87 
88 def min_max(*args):
89     dic = {}
90     dic["max"] = max(args)
91     dic["min"] = min(args)
92     return dic
93 
94 
95 res = min_max(2, 5, 7, 8, 4, 55, 66, 99, 2, -20, -5, 40, -96, 5)
96 print(res)
97 """

 

posted @ 2021-10-23 15:52  余鑫2020  阅读(65)  评论(0)    收藏  举报