# 4.4 不定长参数 defsumplus(*a):# 可变参数的标志,加一个*符号 res = 0 # 把可变参数当做列表使用即可 for i in a: res += i return res print(sumplus()) # 0 print(sumplus(1,2,3,4,5,6,7,8,9)) # 45
匿名函数
python中的匿名函数要点:
只能包含一个表达式
内部不能访问参数列表外的或是全局变量
python中的lambda表达式更多用在很多方法里面,例如sort方法:
1 2 3 4 5 6 7 8 9
# 5. 匿名函数(lambda函数) ''' 语法: lambda [arg1 [,arg2,.....argn]]:expression ''' sumLambda = lambda a=1, b=2: a + b print(sumLambda(1, 2)) # 3 print(sumLambda()) # 3 print(sumLambda) # <function <lambda> at 0x000001D8D3630EE0>
defvar2(): num = 1 print(num)# 因为局部变量存在,所以自动屏蔽全局变量 var2() # 打印出 1
# 6.2 global变量的使用 # 函数内部定义的变量只在函数体内有效 defvar3(): cat = "小黄猫" #print(cat) 报错:NameError: name 'cat' is not defined # 但是可以使用关键字global来声明变量 defvar4(): # global cat="小黄猫" 注意声明和赋值必须分开,这样使用不正确 global cat cat = "小黄猫" var4() # 注意要先调用这个函数,才会产生那个全局变量 print(cat) # 打印出 小黄猫
# 局部变量和全局变量混合使用 dog = "史努比" defvar5(): # print(dog) SyntaxError: name 'dog' is used prior to global declaration # 在全局变量声明前,不能使用这个变量 global dog dog = "史迪奇" print(dog) # 史迪奇 var5() print(dog) # 史迪奇 ,可以看到 dog全局变量已经被改变