zoukankan      html  css  js  c++  java
  • Python学习之参数

    参数

    # coding=utf-8
    # 函数的参数
    def power(x):
        return x * x;
    print power(5)
    

    修改后

    def power_1(x,n=2):     #默认参数可以简化函数的调用
        s=1
        while n > 0:
            n = n-1
            s = s * x
        return s
    print power_1(2,3)
    

    默认参数

    def enroll(name,gender,age=6,city="beijing"):
        print ('name:', name)
        print ('gender:', gender)
        print ('age:', age)
        print ('city:', city)
    
    enroll('bob','F')
    
    def add_end(L=[]):
        L.append('END')
        return L
    print add_end()
    print add_end()
    print add_end()
    # 可变参数,传入的参数个数是可变的
    # def calc(numbers):
    def calc(*numbers):    #定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号
        sum1 = 0
        for n in numbers:
            sum1 = sum1 + n*n
        return sum1
    print calc(1,2)
    print calc()
    # 在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去
    nums = [1, 2, 3]
    print calc(*nums)
    

    关键字参数

    **extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数

    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    person('Micheal',20)
    
    extra = {'city': 'Beijing', 'job': 'Engineer'}
    person('Jack', 24, **extra)     
    print person
    

    命名关键字参数

    关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw检查。

    def person1(name,age,**kw):
        if 'city' in kw:
            pass
        if 'job' in kw:
            pass
        print('name:',name,'age:',age,'other:',kw)
    

    调用者仍可以传入不受限制的关键字参数:

    print person1('Jack', 24, city='Beijing', addr='Chaoyang', zipcode=123456)

    要限制关键字参数的名字,就可以用命名关键字参数

    命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数

  • 相关阅读:
    ARP 协议
    天梯赛L1 题解
    DNS域名系统
    LeetCode 三角形最小路径和
    sql注入漏洞的利用
    XSS漏洞防御
    忘记密码功能漏洞挖掘
    sql bypass
    Web环境搭建组合
    常用数据库的总结
  • 原文地址:https://www.cnblogs.com/n2meetu/p/7871889.html
Copyright © 2011-2022 走看看