Python学习笔记一

2017-10-14  本文已影响0人  张天偿

这两天看了看Python,觉得要做一下笔记,其他方面没什么难点,但看了函数的参数那一块儿之后发现还是要理清楚的,因此从函数参数开始写。

函数的参数

位置参数

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

这段代码中x和n是两个位置参数,传入值按照位置赋值给x和n。

默认参数

当只传入一个参数时,会导致另一个参数为空而报错,因此需要有一个默认值。

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

当只传入x一个参数时,那么就是计算平方值。

注意

  1. 必选参数在前,默认参数在后。
  2. 有多个默认参数时,可以按顺序提供参数;也可以指明参数名称和值,如name=‘tian’,其他参数使用默认参数。
  3. 定义参数时默认参数必须指向不变对象

可变参数

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

这个参数numbers就是可变参数,可以传入1个、2个到任意个,还可以是0个参数。

>>> nums = [1, 2, 3]
>>> calc(*nums)
14

*nums表示把这个list的所有元素输入,然后进行计算。

关键字参数

可变参数允许传入0个或任意个参数,可变参数会组装成tuple。关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

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

这个函数中kw就是关键字参数

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

与可变参数类似,extra把extra的所有元素传到了参数kw中,且对kw的修改不会影响函数外的extra。

命名关键字参数

  1. 用*限制
def person(name, age, *, city, job):
    print(name, age, city, job)

这样city和job必须传入并且是以city=''和job=''的形式。
2.已有可变参数

def person(name, age, *args, city, job):
    print(name, age, args, city, job)

那么不需要再加*了

上一篇 下一篇

猜你喜欢

热点阅读