函数
函数:subroutince(子程序)
作用:
代码重用
保持一致性
可扩展性
函数命名规则:
下划线或字母开头
区分大小写
不能使用保留字
举例:
def fuc():
print('ok')
fuc() #调用必须加括号
形参和实参:
def add(a,b): #形参 print(a) print(a+b) add(3,5) #实参
函数嵌套:
import time #logger() 生成日志记录的函数 def logger(n): time_format = '%Y-%m-%d %X' time_current = time.strftime(time_format) with open('日志记录','a') as f: f.write('%s end action%s\n'%(time_current,n)) #action() 主函数 def action1(n): print('starting action1...') logger(n) def action2(n): print('starting action1...') logger(n) def action3(n): print('starting action1...') logger(n) #实参 action1(1) action2(2) action3(3)
函数参数
#必备参数 def f(name,age): print('I am %s,I am %s'%(name,age)) f('rjw',18) f('zzw',19) #关键字参数(作用:实参输入顺序可以调整) def f(name,age): print('I am %s,I am %s'%(name,age)) f('rjw',18) f(age=19,name='zzw') #默认参数(默认参数必须放到最后边) def print_info(name,age,sex='male'): print('Name:%s'%name) print('Age:%s'%age) print('Sex:%s'%sex) return print_info('rjw',18) print_info('zzw',19,'female') # 不定长参数 def add(*args): print(args) sum=0 for i in args: sum += i print(sum) add(1,2,3,4,5) #不定长参数的位置 def f(q='qwe',*args,**kwargs): # 不定长参数的位置:无命名参数放前边,有键值对参数放后边 # 所有参数位置:优先级(必需参数>关键字参数>不定长参数) #如果实参是一个列表 def b(*args): print(args) b(*[1,2,3]) #如果实参是一个字典 def b(**kwargs): print(kwargs) b(**{'asd':'qwe','vb':'zx'})
函数返回值
def f1(): print('ok') return 10 #作用:1、结束函数;2、给调用者返回一个对象 a = f1()
# 如果return返回多个对象,会自动封装为一个元组
函数作用域
count = 10 def outer(): global count print(count) count = 1 outer() #函数内部定义的对象只在函数内部有效 #多层嵌套函数,引用变量时会从内向外查找,但在函数内部声明变量的语句应在引用变量的语句之前 #函数内部无法使用全局变量或上一层变量,(想使用,需用global声明全部变量,用nonlocal声明上一层变量)