美文网首页
Python学习笔记一

Python学习笔记一

作者: 张天偿 | 来源:发表于2017-10-14 21:57 被阅读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)
    

    那么不需要再加*了

    相关文章

      网友评论

          本文标题:Python学习笔记一

          本文链接:https://www.haomeiwen.com/subject/mtrfuxtx.html