函数(一)

                                                  函数(一)

  • 函数—基本介绍

 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。
原文地址:https://www.cnblogs.com/wqq0723/p/9579361.html