函数 参数

关键字参数: 形如 kwarg = value

参数类型:

  • 必备参数
  • 命名参数
  • 缺省参数
  • 不定长参数

必备参数

必须以正确的顺序传入函数,调用时的数量必须和声明时的一样
不然会出现语法错误

def printme(str):
  # 打印任何传入的字符串
  print str 
  return

printme() # 语法错误,必须传值

廖雪峰大神说:

  • 位置参数 : 调用函数时,传入的值依顺序赋值

  • 默认参数: 调用函数时,默认参数可不赋值,默认参数必须只想不变对象

  • 可变参数: 定义函数时,在参数前面添加 * 符号,在函数内部,参数接收到的就是一个tuple
    Python 允许在list 或tuple 前面加一个 * 号,把list 或tuple 的元素变成可变参数传进去

  • 关键字参数: 允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict ,在参数前面添加 ** 符号

  • 命名关键字参数: 可限制关键字参数传入
    需要分隔符 * ,* 后面的参数视为命名关键字参数
    如果函数定义中已经又一个可变参数,后面就不再需要 特殊分隔符 *

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

遍历技巧

# 在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
...     print(k, v)
...
# 在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print(i, v)
...

#同时遍历两个或更多的序列,可以使用 zip() 组合:
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
...     print('What is your {0}?  It is {1}.'.format(q, a))
...

你可能感兴趣的:(函数 参数)