函数

函数 != function
计算机中的函数 == subroutine 子程序, procedures 过程

函数的作用:
1.减少重复代码
2.方便修改,更易扩展
3.保持代码一致性


函数的定义和调用
def f():
    print('ok')
f()  #调用一定记得要加上括号

def add(x,y):    #一个简单的两位数的加法器
    print(x+y)
add(3,7)
add(10,24)

一个记录日志的函数

 1 import time
 2 def logger(n):
 3     time_format = '%Y-%m-%d %X'
 4     time_current = time.strftime(time_format)
 5 
 6     with open('日志记录','a') as f:
 7         f.write('%s end action %s 
'%(time_current,n))
 8 
 9 def acation1(n):
10     print('starting action 1--->')
11     logger(n)
12 def acation2(n):
13     print('starting action 2--->')
14     logger(n)
15 def acation3(n):
16     print('starting action 3--->')
17     logger(n)
18 
19 acation1(11)
20 acation2(22)
21 acation3(33)
View Code

函数参数

函数的默认参数

1 def print_info(name,age,sex='male'):         #sex为默认参数
2     print('Name:%s'%name)                    #默认参数一定要跟在其它参数后面
3     print('Age:%s'%age)
4     print('Sex:%s'%sex)
5 
6 print_info(name='zhenxiang',age=29)

不定长参数

不定长加法器:

1 def add(*args): 
2     print(args)
3     sum=0
4     for i in args:
5         sum+=i
6     print(sum)
7 
8 add(1,2,3,4,5,6)          #此处的参数为无命名参数

不定长参数的位置关系:

函数调用时候参数的顺序需要跟定义时候的顺序一致 并且无命名参数和键值对参数需要连续
1 def print_info(*args,**kwargs):    #一个*为无命名参数  两个**为键值对
2     print(args)   #('Lee', 24, 'male')
3     print(kwargs) #{'job': 'IT', 'hobby': 'girls', 'height': 110}
4     for i in kwargs:
5         print('%s:%s'%(i,kwargs[i]))   #kwargs是键值对 i是键
6 print_info('Lee',24,'male',job='IT',hobby='girls',height=110)
如果有默认参数 一定要放左边 顺序(关键参数,默认参数,args,kwargs)
1 def print_info(sex='male',*args,**kwargs):
2     print(args)
3     print(kwargs)
4     for i in kwargs:
5          print('%s:%s'%(i,kwargs[i]))
6 print_info(1,2,3,4,'female',name='Lige')           #第一个参数传给sex了

函数的返回值

1.函数里如果没有return 默认返回None
2.遇到return 就停止执行并返回结果
1 def f():
2     print('ok')
3     return    #作用:1.结束函数 2.返回一个对象 如果没有参数 那么默认是None 如果return 10 那么返回值就是10
4 a=f()
5 print(a)




原文地址:https://www.cnblogs.com/cindy7/p/10928070.html