码迷,mamicode.com
首页 > 编程语言 > 详细

11-Python-函数

时间:2017-10-30 19:36:26      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:内存   集合   sha   color   作用   默认   inux   返回   hand   

1、函数的定义

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。其特性如下:

  • 减少重复代码
  • 使程序变的可扩展
  • 使程序变得易维护

2、语法定义

2.1  基本定义

1 def func1():
2     ‘‘‘test1‘‘‘  #声明函数的作用
3     print("test function1")
4     return 0  #返回值
5 
6 func1()  #调用函数
7 x = func1()  #将函数返回值赋值给x
8 print(x)

2.2  带有参数的函数

函数的参数又分为形式参数实际参数

  • 形参变量:只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
  • 实际参数:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
1 def func1(x,y):
2     print(x)
3     print(y)
4 
5 func1(1,2)  #位置参数,实参与形参一一对应,与位置有关
6 func1(y=2,x=1)  #关键字参数,与位置无关。但是需要注意的是:关键字参数必须在位置参数之后。
7 
8 func1(10,y=20) 
9 # func1(x=10,20)  这样写不行,因为关键字参数不能写在位置参数前面

默认参数默认参数必须放在形参的后面。

 1 #现有代码如下:
 2 def stu_register(name,age,country,course):
 3     print("----注册学生信息------")
 4     print("姓名:",name)
 5     print("age:",age)
 6     print("国籍:",country)
 7     print("课程:",course)
 8  
 9 stu_register("王山炮",22,"CN","python_devops")
10 stu_register("张叫春",21,"CN","linux")
11 stu_register("刘老根",25,"CN","linux")
12 
13 #发现country都是相同的,因此可以给该参数一个默认值:
14 def stu_register(name,age,course,country=CN):  #默认参数必须放形参的后面
15     print("----注册学生信息------")
16     print("姓名:",name)
17     print("age:",age)
18     print("国籍:",country)
19     print("课程:",course)
20  
21 stu_register("王山炮",22,"python_devops")
22 stu_register("张叫春",21,"linux")
23 stu_register("刘老根",25,"linux")

非固定参数:若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

 1 #*args:接收N个位置参数,转换成元组
 2 def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式,且*args必须放在形参和默认参数之后
 3     print(name,age,args)
 4   
 5 stu_register("Alex",22)  #Alex 22 () #输出:Alex 22 () #后面这个()就是args,只是因为没传值,所以为空元组
 6 
 7 stu_register("Jack",32,"CN","Python")  #输出:Jack 32 (‘CN‘, ‘Python‘)
 8 
 9 #**kwargs:接收N个关键字参数,转换成字典
10 def stu_register(name,age,*args,**kwargs): # **kwargs 会把多传入的参数变成一个字典形式,且**kwargs必须放在*args之后
11     print(name,age,args,kwargs)
12   
13 stu_register("Alex",22)  #输出:Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空字典
14  
15 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong") #输出:Jack 32 (‘CN‘, ‘Python‘) {‘province‘: ‘ShanDong‘, ‘sex‘: ‘Male‘}

 

11-Python-函数

标签:内存   集合   sha   color   作用   默认   inux   返回   hand   

原文地址:http://www.cnblogs.com/Druidchen/p/7755677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!