7.Python入门之函数参数

建立函数就是将复杂的代码重新组织,提高代码可读性.


创建和调用函数


创建函数关键字def


>>>def go():

     print('going')

调用函数


>>>go()

going

函数调用及运行机制:发生函数调用时,自动向上找到该函数定义过程,再依次执行函数体内代码(缩进部分)


重复调用函数示例


>>>for i in range(2):

   go()

going

going

going

函数的参数和返回值


>>>def add(num1,num2):

    print(num1+num2)

   return num1 + num2  #返回值的关键字为return


>>>add(1,2)  #调用过程:函数名和括号

3

3


形参和实参


形参是函数定义过程的参数,只代表变量名,实参是调用时传递来的参数,是具体的内容,赋值到变量名的值,如上述num1和num2为形参,1和2为实参


函数文档


解释说明作用,描述函数功能及用法,但不同于注释


>>>def exchangeRate(dollar):

    """dollar - >RMB

       汇率定为6.5              

    """

   return dollar * 6.5


>>>exchangeRate(10)

  65.0


一对"""内的字符串不会打印出来,而作为函数的一部分存储,称为函数文档字符串,该类字符串不同于简单的注释,可通过特殊属性_ _doc_ _(两条下划线)获取.


>>>exchangeRate.__doc__

  'dollar - >RMB\n\t汇率定为6.5'


通过help查看自建函数用法


>>>help(exchangeRate)

Help on function exchangeRate in module __main__:

  

exchangeRate(dollar)

   dollar - >RMB

         汇率定为6.5




位置参数和关键字参数


普通参数称为位置参数,关键字参数主要是为了避免参数顺序错误而产生,通过在传入实参时指定形参的变量名,如下所示


>>>def say(name,words):

          print(name + words)


>>>say('happy','I am')

happy I am


>>>say(words='happy',name='I am')

I am happy



默认参数


默认参数指的是在定义时赋予了默认值的参数


>>>def say(name='Jack',words='is jumping'):

    print(name + words)


>>>def say()

  Jack is jumping


>>>say('happy','I am')

  happy I am


收集参数(可变参数)


通过在参数前加上星号(*)即可,Python处理过程就是把标志为收集参数的参数们打包成一个元组,但需注意若在收集参数后仍有其他参数,应该用关键字参数指定,否则Python会把所有实参都作为收集参数.如下所示:


>>>def test(*params):
     print('有%d个参数' % len(params))
     print(params[1])


>>>test('g','o','e','d')
有4个参数
o


>>>test('人',123,3.14)
有3个参数
123


>>>def test(*params,extra):
      print(params)
      print(extra)


>>>test(1,2,3,4)  #报错,因为Python把所有实参都作为收集参数

>>>test(1,2,3,4,extra=31)
(1,2,3,4)   #元组
31


如果函数参数带有收集参数,建议将其他参数设置为默认参数


>>>def test(*params,extra="31"):
    print(params)
    print(extra)

>>>test(1,2,3,4)
(1,2,3,4)
31


星号(*)用法


星号(*)既可以打包又可以解包,如将一个列表传入test参数的收集参数*param,则调用test(a)会出错,需要在a前面加上星号(*)表示实参需要解包后才能使用:


>>>def test(*params):
      print('有%d个参数' % len(params))
      print(params[1])


>>>a=[1,2,3,4]
>>>test(a)  #直接将列表名a作为实参将出错
有1个参数
Traceback(most recent call last):
 .......
IndexError:tuple index out of range #a打包成元组,成为元组的元组,元素个数为1

>>>test(*a)  #实参前加上星号(*)表示解包
1
2

Python还有另一种收集方式,用两个星号(**)表示,表示将参数打包成字典形式,以后再叙.











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值