Python学习之==>函数

一、函数是什么:

  函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名就行。

二、函数的作用:

  1、简化代码

  2、提高代码的复用性

  3、代码可扩展

三、定义函数:

1 def SayHello():   #函数名
2     print('Hello')#函数体
3 SayHello()        #调用函数,函数不调用是不会被执行的

 四、函数的参数

位置参数:必填参数

1 def calc(a,b): #形参,形式参数
2     res = a * b
3     print('%s * %s = %s'%(a,b,res))
4 calc(8.9,2.7)  #实参,实际参数

默认值参数:非必填参数

 1 # 操作文件函数(读和写)
 2 def op_file(file_name,conent=None): #conent为写的内容
 3     f = open(file_name,'a+',encoding='utf-8')
 4     f.seek(0)
 5     if conent:  #conent不为空代表写入文件
 6         f.write(conent)
 7         f.flush()
 8     else:      #conent为空时读文件
 9         all_users = f.read() #函数里面定义的局部变量只能在函数里面用
10         return all_users     #调用完函数之后,返回什么结果
11     f.close()
12 # 把函数返回的结果存入变量
13 res = op_file('a.txt')
14 print(res)

 非固定参数(参数组):

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个元组里面

 1 def syz(*args): #参数组
 2     print(args)
 3     username = args[0]
 4     pwd = args[1]
 5     age = args[2]
 6 syz()
 7 syz('niuniu','123')
 8 syz('niuniu','niuniu','test')
 9 def syz2(a,*args):
10     print(a)
11     username = args[0]
12     pwd = args[1]
13     age = args[2]
14 syz2()
15 syz2('niuniu','123')
16 syz2('niuniu','niuniu','test')

 关键字参数:

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个字典里面

 1 def syz(**kwargs):
 2     print(kwargs)
 3 syz()
 4 syz(name='niuniu',age=23)
 5 syz(name='niuniu',age=23,add='回龙观',home='河南')
 6 def syz2(time,**kwargs):
 7     print(kwargs)
 8 syz2('20180418')
 9 syz2(name = 'niuniu',age = 23,time = '20180418')
10 syz2('20180418',name = 'niuniu',age = 23,add = '回龙观',home = '河南')

 五、全局变量

    1、不安全,所有人都能改

    2、全局变量会一直占用内存

1 name = '牛牛'  #全局变量
2 def sayName():
3     global name  #如果需要修改全局变量,需要先声明
4     name = '刘伟'#局部变量
5     print('name1:',name)
6 sayName()
7 print('name2:',name)

 六、递归函数:函数自己调用自己

  1、少用递归

  2、递归最多调用999次,效率不高

1 def test():
2     num = int(input('please enter a number:'))
3     if num % 2 == 0:#判断输入的数字是不是偶数
4        return True  #如果是偶数的话,程序就退出了,返回True
5     print('不是偶数请重新输入!')
6     return test()   #如果不是偶数的话继续调用自己,输入值
7 print(test())       #调用函数

 七、函数返回多个值

 1 # 定义一个函数返回多个值
 2 def say():
 3     num1 = 1
 4     num2 = 2
 5     num3 = 3
 6     return num1,num2,num3
 7 # 函数返回多个值会把它放到一个元组里面
 8 print(say())
 9 # 函数如果返回多个值,可以用多个变量来接收
10 res1,res2,res3 = say()
11 print(res1)
12 print(res2)
13 print(res3)
原文地址:https://www.cnblogs.com/L-Test/p/9053915.html