python 函数 返回值 参数


practice

 1 1. 函数
 2         函数是对功能的封装
 3         语法:
 4             def 函数名(形参列表):
 5                 函数体(代码块, return)
 6         调用:
 7             函数名(实参列表)
 8     2. 返回值
 9         return : 在函数执行的时候. 如果遇到return. 直接返回
10         1.如果函数什么都不写, 不写return, 没有返回值. 得到的是None
11         2.在函数中间或者末尾写return, 返回的是None
12         3.在函数中写return 值. 返回一个值.
13         4.在函数中可以返回多个返回值, return 值1, 值2, 值3...., 接收的是元组
14     3. 参数
15         函数执行的时候给函数传递信息.
16         *形参:函数声明的位置的变量
17         *实参:函数调用的时候给的具体的值
18         传参:把实参交给形参的过程
19 
20         1. 实参:
21             1. 位置参数, 按照形参的参数位置, 给形参传值
22             2. 关键字参数, 按照形参的名字给形参传值
23             3. 混合参数. 即用位置参数, 也用关键参数
24         2. 形参:
25             1. 位置参数
26             2. 默认值参数 先位置后默认值
27             3. 动态参数(预习预习)
View Code

1. 函数

  函数是对功能的封装, 结构体如下:

  声明:  

    def  函数名 (形参)                                           

      函数体 (代码块  return)  

  调用:

    函数名 (实参列表)

2. 返回值

  return :  函数在执行过程中遇到 return 会直接返回,类似于循环中的 break

  1) 如果函数什么都不写,不写return,没有返回值,得到的是None

  2) 中间或末尾写return,没有值,返回的是None, 中间出现类似break,不再执行后面的语句

  3) 在函数中写 return 值. 返回的是值

  4)在函数中可以返回多个值,return  值1,值2,值3...  返回的形式是元组

 1 #无返回值的
 2 def yue():
 3     print('打开手机')
 4     print('打开陌陌')
 5     print('搜索心仪的对象')
 6     print('出去玩吧')
 7     print('出发')
 8 yue()
 9 print('挣钱!')
10 
11 #有返回值的
12 def yue():
13     print('打开手机')
14     print('打开陌陌')
15     print('搜索心仪的对象')
16     print('出去玩吧')
17     print('出发')
18     return(10086)
19 ret=yue()
20 print(ret)   #10086
21 
22 #有返回值的
23 def yue():
24     print('打开手机')
25     print('打开陌陌')
26     return  #可以终止函数的运行  None
27     print('搜索心仪的对象')    #之后的语句不再运行
28     print('出去玩吧')
29     print('出发')
30 ret=yue()
31 print(ret)
32 
33 # 小练习
34 def jisuan():
35     content1=int(input('请输入数字:'))
36     content2=int(input('请输入数字:'))
37     return(content1+content2)
38 print(jisuan())
View Code

 3. 参数

  函数执行的时候给函数传递信息.

  *形参: 函数声明时位置的变量  

  *实参: 函数调用时给的具体的值

  传参: 把实参传递给形参的过程

1 def yu(tools):   #形参
2     ....
3 yu('cars')   #实参

  实参形式:

    1) 位置参数, 按照形参的参数位置,给形参传值

    2) 关键字参数, 按照形参的名字给形参传值

    3) 混合参数, 即有位置参数又有关键字参数, 且关键字参数在后 

1 def chi(good_food,no_good_food,dreak,ice_cream):  #形参位置参数
2     print(good_food,no_good_food,dreak,ice_cream)
3     
4 chi('蜗牛','辣条','果汁','哈根达斯')  #位置参数
5 chi(dreak='神仙水',ice_cream='老冰棍',good_food='盖浇饭',no_good_food='锅包肉') #关键字参数
6 chi('盖浇饭','汉堡',ice_cream='巧乐兹',dreak='营养快线') #混合参数 必须(先位置后关键字)

  形参形式:

    1) 位置参数

    2) 默认值参数,    先位置后默认值

    3) 动态参数 

1 def regist(name,phone,gender=''):  #形参默认值参数   默认值参数必须在参数列表的后面
2     print(name,phone,gender)
3 
4 regist('阿凡达','10086')
5 regist('阿凡提','10010')
6 regist('阿凡','10011')  #不赋值则为男
7 regist('女神','10088','')  #可以重新赋值为女

默认值参数中要注意:
 1 def extendList(val,list=[]):  #默认值 是可变的时候,多次调用,它的内存地址是一样
 2     list.append(val)
 3     return list
 4 list1 = extendList(10)
 5 list2 = extendList(123,[])
 6 list3 = extendList('a')
 7 
 8 print('list1=%s'%list1)
 9 print('list2=%s'%list2)
10 print('list3=%s'%list3)

结果为:[10,'a'] [123] [10,'a']
 

函数的动态参数
:
1. *args 位置参数动态传参 2. **kwargs 关键字参数动态传参 形参动态传参顺序:
      位置参数 >>
*args >> 默认值 >> **kwargs
      以上参数可以任意搭配使用
      其中:默认值参数要改变默认值得话,需要用关键词来改变 def func(*args, **kwargs): pass

形参的位置*,**: 聚合 实参的位置*,**: 打散

  声明时: 聚合

 1) *args 位置参数的动态传参 (可以同时接收多个位置参数,)  声明时位于位置参数变量后.

 1 def chi(*food):  #参数名是food  *表示动态传参
 2     print(food)
 3 chi('盖浇饭','火锅','锅包肉')  #以元组的形式输出
 4 #('盖浇饭', '火锅', '锅包肉')
 5 
 6 def chi(name,*food):  #参数名是food  *表示动态传参
 7     print(name+'要吃',food)
 8 chi('','盖浇饭','火锅','锅包肉')
 9 # 陈要吃 ('盖浇饭', '火锅', '锅包肉')
10 
11 #要将位置参数放在前面, 最好不要放后面(如下),需要用关键词参数传参
12 def chi(*food,name):  #参数名是food  *表示动态传参
13     print(name+'要吃',food)
14 chi('盖浇饭','火锅','锅包肉',name='')  #返回的是元组
15 #陈要吃 ('盖浇饭', '火锅', '锅包肉')

   2) **kwargs  关键词参数的动态传参(可以同时接收多个关键词参数), 声明时位于默认值参数变量后.

1 def chi(**food):
2     print(food)
3 chi(good='狗不理',nogood='馒头',drink='大白梨',)   #返回的是字典
4 # 输出:{'good': '狗不理', 'nogood': '馒头', 'drink': '大白梨'}

 

1 # 可接收所有参数
2 def func(*args, **kwargs):# 无敌 *args相当于一个聚合的作用
3     print(args, kwargs)
4 func(1,2,3,4,5,a=6,b=7,c=9)

 调用时:  打散

  1)  list, str, tuple, set 用 * 来打散     传参后为tuple类型

1 def func(*food): # 形参:聚合, 位置参数
2     print(food)
3 lst = ["鸡蛋","煎饼果子","猪蹄","滋滋冒油"]
4 func(*lst) # 打散. 把list, tuple, set, str 进行迭代打散

  2) dict, 用 ** 来打散      传参后为dict类型

1 def func(**kwargs):
2     print(kwargs)
3 dic = {"name":'alex', 'age':'18'}
4 func(**dic) # 打散成关键字参数 

4. 函数的注释

  func.__doc__      查看注释

 1 def func(a, b):
 2     """
 3     这个函数是用来计算a和b的和
 4     :param a: 第一个数据
 5     :param b: 第二个数据
 6     :return: 返回的是两个数的和
 7     """
 8     return a + b
 9 
10 print(func.__doc__) # 查看注释文档,ocument文档

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM