zoukankan      html  css  js  c++  java
  • python学习笔记:函数参数

    1. 位置参数:一般的参数

    2. 默认参数:    

    1 def power(x, n=2):
    2     s = 1
    3     while n > 0:
    4         n = n - 1
    5         s = s * x
    6     return s

    参数里有默认赋值,调用时用power(5)就是平方,如果power(5, 3)就是立方了

    如果有多个默认参数,调用时前面用默认参数,后面不是用默认参数,则需要在调用语句中写出“参数名 = 参数值”,比如下面这个情况

    1 def enroll(name, gender, age=6, city='Beijing'):
    2     print('name:', name)
    3     print('gender:', gender)
    4     print('age:', age)
    5     print('city:', city)

    enroll('bob','M',7)这样没有参数名是可以的,city就是用默认参数'beijing',age没有用,enroll('sary','F','hangzhou')这样是错误的,因为'hangzhou'不是age,是city,因此需要这样使用:enroll('sary','F',city='hangzhou'),这样age=6, city='hangzhou'

    3. 可变参数

    1 def calc(numbers)
    2       sum = 0
    3       for n in numbers:
    4           sum = sum + n * n
    5       return sum

    如果使用上面这个代码,对于一个list或者tuple输入值,比如[1,2,3],调用的时候需要这么写:calc([1,2,3])或者calc((1, 2, 3)),很麻烦

    所以可变参数需要在numbers前加*

    1 def calc(*numbers)
    2       sum = 0
    3       for n in numbers:
    4           sum = sum + n * n
    5       return sum

    这样就可以这样调用了:calc(1, 2, 3)。

    对于nums = [1, 2, 3]这个list时,如果用上面这个可变参数,则不能写成calc(nums),需要写成calc(nums[0], nums[1], nums[2])或者calc(*nums)

    4. 关键字参数

    1 def person(name, age, **kw)
    2      print('name: ’, name, 'age: ', age, 'other: ', kw)

    **kw是一个dict,调用语句为person('jackson', 30, gender='M', city='beijing')后,结果为name: jackson age:30 other:{'gender' : 'M', 'city' : 'beijing'}

    对于extra = {'gender' : 'M', 'city' : 'beijing'}这种已经定义好的dict,可以这么调用:person('jackson', 30, **extra)

    5. 命名关键字参数

    这个感觉用处不大

  • 相关阅读:
    OCP 071【中文】考试题库(cuug整理)第51题
    OCP 071【中文】考试题库(cuug整理)第50题
    OCP 071【中文】考试题库(cuug整理)第49题
    OCP 071【中文】考试题库(cuug整理)第48题
    OCP 071【中文】考试题库(cuug整理)第47题
    OCP 071【中文】考试题库(cuug整理)第46题
    three 优化压缩
    个人最近功能demo总结
    下载文件,204问题
    debug和release的web.config分开配置
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/8967437.html
Copyright © 2011-2022 走看看