函数

#python 中函数定义方法

 1 def test(x):
 2     """这个一个函数的介绍"""
 3     x+=1
 4     return
 5 
 6 # def :定义函数的关键字
 7 # test:函数名
 8 # ():内可定义形参
 9 # """.....""":文档描述(非必要,但是建议加一个函数的描述信息)
10 # x+=1:指代码快或程序处理逻辑
11 # return:第一返回值

#测试函数示例

 1 import  time
 2 def file1():
 3     """打开一个文件写日志"""
 4     time_f = '%Y-%M-%D %X'
 5     time_c = time.strftime(time_f)
 6     with open('user.txt','a+') as f:
 7         f.write('\n %s --- aaa' %time_c)
 8     return 0
 9 
10 def tes():
11     print("测试打印")
12     file1()
13     return 1,'hello'
14 
15 #将return 的值打印出来
16  print(file1())
17  print(tes())

#调用参数

 1 #形参:形式参数,不是实际存在,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参。
 2 #实参:实际参数,调用函数时传给函数的参数,可以使常量,变量,表达式,函数,传给形参。
 3 #区别:形参是虚拟的,不占用内存空间,形参变量只有被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参。
 4 
 5 def number(x,y,z):   #x,y是形参
 6     print(x)
 7     print(y)
 8     print(z,'end\n')
 9 
10 # number(1,2)        #1,2是实参,和形参的关系是一一对应的
11 # number(2,1)
12 number(1,z=3,y=5)    #关键参数是不能写在位置参数前面.比如错误的示范:number(x=1,2,3)

#函数默认参数

 1 #特点:调用函数的时候。默认参数非必须传递
 2 #part 1
 3 def num(x,y,z=3):
 4     print(x)
 5     print(y,'end\n')
 6 
 7 num(1,3)
 8 
 9 #part 2
10 def nu(x,*args):    #*接受N个位置参数为元组的模式,args形参的名字
11     print(x,args)
12 
13 nu(*['a',2,3,4])   #结果a (2, 3, 4)
14 nu('a',*[2,3,4])    #结果a (2, 3, 4)
15 
16 #part 3
17 
18 def n_dic(**kwargs): #**接受N个关键字参数转换成字典,kargs形参的名字
19     print(kwargs)
20     print(kwargs['name'])
21     print(kwargs['age'])
22 
23 n_dic(name='gg',age=11)
24 
25 #组合
26 
27 def all(name,age,*args,**kwargs):
28     print(name)
29     print(age)
30     print(args)
31     print(kwargs)
32
all('gdr',22,*[1,2,3],day='gg',sex='M')

#全局和局部变量

 1 name='gdr'                          #全局变量
 2 school='四川师范大学'                 #全局变量
 3 l = ['ggg','fff']           #列表,字典,集合可以通过局部变量修改全局变量
 4 
 5 def change_name(name):
 6     #global school           #将局部变量变为全局变量(最好不要用)
 7     #school = '四川科技大学'
 8     l[0]='gdr'
 9     print('before change',name,school,l)
10     name = 'djj'                    #局部变量,函数就是这个name变量的作用域
11     print('after change',name)
 
posted @ 2017-10-17 16:18  橙子味的萝卜  阅读(145)  评论(0编辑  收藏  举报