函数

函数: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声明上一层变量)

 

posted on 2018-03-15 10:07  游乐  阅读(86)  评论(0编辑  收藏  举报

导航