函数(一)
-
函数—基本介绍
1 #定义函数 2 def sayhi(): 3 print("Hello,") 4 print("my name is black girl...") 5 print(sayhi) #打印的是内存地址:<function sayhi at 0x000001DB225D27B8> 6 sayhi() #通过函数名进行调用函数 7 8 9 #函数也可以带有参数 10 def sayhi(name): 11 print("hello",name) 12 print("my name is black girl.") 13 #sayhi() 报错 TypeError: sayhi() missing 1 required positional argument: 'name' 缺少位置参数 14 sayhi('TQTL') #结果为:Hello TQTL 15 16 17 #计算两个数的乘方的程序 18 a,b = 5,10 19 c = a**b 20 print(c) #结果为:9765625 21 #使用函数的程序 22 def calc(x,y): 23 res = x**y 24 print(res) 25 calc(5,10)#结果为:9765625 26 calc(6,5)#结果为:7776
-
函数—默认参数
1 def stu_register(name,age,country,course) : #实参 2 print("registriation info ...") 3 print(name,age,country,course) 4 5 stu_register("王山炮",22,"CN","Python") #实参 6 stu_register("张叫春",21,"CN","Linux") 7 stu_register("刘老根",25,"CN","Devops") 8 #结果为: 9 # registriation info ... 10 #王山炮 22 CN Python 11 #registriation info ... 12 #张叫春 21 CN Linux 13 #registriation info ... 14 #刘老根 25 CN Devops 15 16 17 #使用默认参数 18 def stu_register(name,age,course,country="CN") : #实参 19 print("registriation info ...") 20 print(name,age,country,course) 21 22 stu_register("王山炮",22,"Python") #实参 23 stu_register("张叫春",21,"Linux") 24 stu_register("刘老根",25,"Devops","Korean") 25 #结果为: 26 #registriation info ... 27 #王山炮 22 CN Python 28 #registriation info ... 29 #张叫春 21 CN Linux 30 #registriation info ... 31 #刘老根 25 Korean Devops 32 33 #注意:默认参数必须放在位置参数之后。
-
函数—关键参数
1 #错误实例1 2 def stu_register(name,age,course,country="CN") : #实参 3 print("registriation info ...") 4 print(name,age,country,course) 5 6 stu_register("王山炮",course="Python",22) #实参 7 #结果为:SyntaxError: positional argument follows keyword argument 8 9 #错误实例2 10 def stu_register(name,age,course,country="CN") : #实参 11 print("registriation info ...") 12 print(name,age,country,course) 13 14 stu_register("王山炮",22,course="Python",age=22) #实参 15 #结果为:TypeError: stu_register() got multiple values for argument 'age' 16 17 18 #注意:关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后。
-
函数—非固定参数1
1 #给一个运维人员报警 2 def send_alert(msg,users): 3 print(msg,users) 4 send_alert("报警发送给:","alex") 5 #结果为:报警发送给: alex 6 7 #给五个运维人员报警 8 def send_alert(msg,*users): 9 for u in users : 10 print("报警发送给:",u) 11 #方式一: 12 send_alert("报警发送给:","alex","wqq","shanshan","zhang","liming") 13 #结果为: 14 # 报警发送给: alex 15 #报警发送给: wqq 16 #报警发送给: shanshan 17 #报警发送给: zhang 18 #报警发送给: liming 19 20 #方式二: 21 #不加 * 错误的方法: 22 send_alert("报警发送给:",["alex","wqq","shanshan","zhang","liming"]) 23 #结果为:报警发送给: ['alex', 'wqq', 'shanshan', 'zhang', 'liming'] 24 25 #加 * 的方法 26 send_alert("报警发送给:",*["alex","wqq","shanshan","zhang","liming"]) 27 #结果为: 28 # 报警发送给: alex 29 #报警发送给: wqq 30 #报警发送给: shanshan 31 #报警发送给: zhang 32 #报警发送给: liming 33 34 #小结: 35 #如果参数中出现*us ers,传递的参数就可以不再是固定个数,传过来的所有参数打包成元组形式
-
函数—非固定参数2
1 def func(name,*args,**kwargs): #**kwargs接受的是字典形式的数据 2 print(name,args,kwargs) 3 func("Alex",22,"tesla","500w",addr="山东",num=12442323) 4 #结果为:Alex (22, 'tesla', '500w') {'addr': '山东', 'num': 12442323} 5 6 d={'degree':'primary school'} 7 func('Peiqi',d) 8 #结果为:Peiqi ({'degree': 'primary school'},) {} 此时d为字典形式 9 10 #字典前面加上**,就可以传参正常 11 d={'degree':'primary school'} 12 func('Peiqi',**d) 13 #结果为:Peiqi () {'degree': 'primary school'}
-
函数—返回值
1 #案例1: 2 def stu_register(name,age,course): 3 print(name,age,course) 4 if age > 22: 5 return False 6 else: 7 return True 8 status = stu_register('Peiqi',29,'安保') 9 print(status) 10 #结果为: Peiqi 29 安保 False 11 12 #案例2: 13 def stu_register(name,age,course): 14 print(name,age,course) 15 status = stu_register('Peiqi',29,'安保') 16 print(status) 17 #结果为: Peiqi 29 安保 None 18 19 #案例3: 20 def stu_register(name,age,course): 21 print(name,age,course) 22 return None 23 print("hahahha") 24 status = stu_register('Peiqi',29,'安保') 25 print(status) 26 #结果为: Peiqi 29 安保 None return 代表一个函数的终止 27 28 #案例4: 29 def stu_register(name,age,course): 30 print(name,age,course) 31 return None 32 print("hahahha") 33 return 1 34 status = stu_register('Peiqi',29,'安保') 35 print(status) 36 #结果为: Peiqi 29 安保 None return 代表一个函数的终止 37 38 39 #小结: 40 1、函数在执行过程中,只要遇到return语句,就会停止执行并返回结果。 41 2、如果在函数中未指定return语句,那么这个函数的返回值为None。