1、函数: 是指一组语句的集合,通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名即可
优点:
# 减少重复代码
# 使程序可扩展
# 使程序易维
栗子1:
1 def sayhi(): 2 print (‘hello‘) 3 4 sayhi()
## sayhi 是指向函数的内存地址,加了() 就是执行这个函数
# 如下又是一种,这个是可以给函数插入参数,参数可以根据调用时传入的参数的不同,来决定内部执行代码的流程
eg:(1)
1 def sayhi(name): 2 print(‘hello‘,name) 3 4 say(‘feifei‘)
eg:(2)
1 def cale(x,y): 2 res = x ** y 3 print(res) 4 5 cale(5,10) 6 cale(2,10)
#形式参数和实参
1 def cale(x,y) ## 形参,只在函数内部有效,只有在调用并分配值得时候,才会分配内存空间,并在调用结束后,就释放内存 2 res= x ** y 3 return res 4 5 c = cale(a,b) ## 实参 6 print(c)
##默认参数,默认参数必须放在位置参数的后面(必须必须!!!)
1 def stu_register(name,age,course,country=‘CN‘,): ##country就是默认参数,默认参数必须放在最后面 2 print(‘-----注册学生信息-----‘) 3 print(‘姓名‘,name) 4 print(‘age‘,age) 5 print(‘国籍‘,country) 6 print(‘课程‘,course) 7 8 9 stu_register(‘feifei‘,23,‘中文‘)
## 关键参数,不想按顺序的时候就用关键参数,关键参数必须放在位置参数的后面
def stu_register(name,age,course,country=‘CN‘,): print(‘-----注册学生信息-----‘) print(‘姓名‘,name) print(‘age‘,age) print(‘国籍‘,country) print(‘课程‘,course) stu_register(‘王大哥‘,course=‘PYthon‘,age=22,) ##j绝对不可以这样 ## stu_register(‘王大哥‘,course=‘PYthon‘,23)
## 非固定参数,如果参数中出现了*形式参数,传递的参数就可以不再是固定参数,会把传入的参数打包称为一个元祖,发送给*agrs,
def send_alert(msg,*agrs) ## 一个※ 代表可以传入无限数量的参数都代表*usr for u in users:
print(‘我要发信息给‘,u)
##方式一参数传递方式:
send_alert(‘我要发信息‘,‘alex’,‘abc‘)
##方式二参数传递方式:*号后手动加上‘[ ]‘
send_alert(‘我要发信息‘,*[‘alex’,‘abc‘])
## 非固定参数2, 2个*的形式参数 **kwargs 接受的是关键字参数
def func(name,*args,**kwargs): print(name,args,kwargs) func(‘pengfei‘,22,‘tesla‘,‘1000w‘)
func(‘pengfei‘,22,‘tesla‘,‘1000w‘,addr=‘山东‘,num=‘12442323‘)
。。。。。。待续
原文:https://www.cnblogs.com/LoveElsa/p/10247666.html