zoukankan      html  css  js  c++  java
  • python碎片

    一个*传参:

      方式1:如果想传一个列表中的值,实参前加*。如: *[1,2,3]

      方式2:直接传入一个列表,不加*。如[1,2,3],则传入的是一整个列表,包括[]

    两个**传参:

      方式1,:{name = 'zhuo'}

      方式2:**{'name':'zhuo','age':'23'}

    1 def  name(*y,**z):
    2 
    3   print(y,z)
    4 
    5 name(*[1,2,3],**{'name':zhuo'}) #打印(1,2,3 ),{'name':'zhuo'}
    6 
    7 name([1,2,3],{'name':'zhuo'}) #打印([1,2,3],{'name':'zhuo'}) , {}
    8 
    9 name([1,2,3],{name = 'zhuo'}) #打印[1,2,3],{'name':'zhuo'}

    形参

    实参

    位置参数:必须一一对应,不能缺少或增多,位置参数必须要在关键字参数左边

    1 (1)求x的n次方
    2 def power(x,n):  #x,n为位置参数
    3     s=1
    4     while n>0:
    5         n=n-1
    6         s=s*x
    7     return s
    8 

    关键字参数:

     1 5、关键字参数 ** (可以传入0到任意个关键字参数,格式 city='longyan' 2 >>> def person(name,age,**kw):
     3    print('name:',name,'age:',age,'other:',kw)
     4 (1)传入新的dict参数
     5 >>> person('zhuo',22,city='longyan') # city='longyan'为关键字参数
     6 name: zhuo age: 22 other: {'city': 'longyan'}
     7 (2)使用现成的dict
     8 >>> extra={'city:':'Beijing','job':'leader'}
     9 >>> person('zhuo',22,city=extra['city:'],job=extra['job'])
    10 name: zhuo age: 22 other: {'city': 'Beijing', 'job': 'leader'}
    11 (3)使用现成的dict+ ** extra(**表示默认传入dict extra中的所有元素)
    12 >>> person('zhuo',22,**extra)
    13 name: zhuo age: 22 other: {'city:': 'Beijing', 'job': 'leader'}
    14   ● 在person函数里,我们保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到
     1 6、命名关键字参数 , * 2 (1)检查person函数内是否有city和job参数
     3 def person(name,age,**kw):
     4 if ‘city’ in kw:
     5 #有city函数
     6     pass
     7 if ‘job’ in kw:
     8 #有job函数
     9     pass
    10 print(name,age,kw)
    11 
    12 (2)限制关键字名字,分隔符  ,*13 命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错
    14 def person(name, age, *, city, job):
    15 print(name, age, city, job)
    16 >>> person('Jack', 24, city='Beijing', job='Engineer')
    17 Jack 24 Beijing Engineer

    默认参数:调用函数时可以不传参数,使用定义时的默认参数

     1 默认参数(默认参数必须指向不变对象)
     2 #默认参数使用注意事项:
     3 #1.必选参数在前,默认参数在后
     4 #2.有多个参数时,把变化大的参数放前面,变化小的参数放后面。后变化小的的可以作为默认参数
     5 def power(x, n=2):
     6 s = 1
     7 while n > 0:
     8 n = n - 1
     9 s = s * x
    10 return s
    11 #可按自动顺序改变默认参数值,也可指定改变默认参数的值(如city本来是第四个参数,‘shenzheng’)
    12 >>> enroll('zhu=o',5,city='longyan')
    13 name: zhu=o
    14 gender: 5
    15 age: 6
    16 city longyan
    17 
    18 #3.默认参数的坑(所以参数要定义为不变参数)
    19 >>> add_end()
    20 ['END']
    21 >>> add_end()
    22 ['END', 'END']
    23 >>> add_end()
    24 ['END', 'END', 'END'

    参数组(非固定参数):

    1 def  func(x,*args):
    2     print(args)
    3 func(1,['x','y','z'])
    4 #(['x', 'y', 'z'],) 实参前不加*,默认传入的是一个元组,且该列表是元组中的第一个数据
    5 func(1,*['x','y','z'])
    6 #('x', 'y', 'z')实参前加*,表示传入的是一个整体列表
     1 可变参数 *
     2 #计算a2 + b2 + c2 + ……
     3 def calc(number):
     4    sum=0
     5    for i in number:
     6       sum=i*i+sum
     7    return sum
     8 (1)传入新的列表参数
     9 >>> print(calc([1,2,3]))
    10 14
    11 (2)使用现成的列表(角标)
    12 >>> nums=[1,2,3]
    13 >>> print(calc([nums[0],nums[1]]))
    14 5
    15 (3)使用 *nums  把nums列表的所有元素作为可变参数传入
    16 >>> print(calc([*nums]))
    17 14



  • 相关阅读:
    2017ccpc全国邀请赛(湖南湘潭) E. Partial Sum
    Codeforces Round #412 C. Success Rate (rated, Div. 2, base on VK Cup 2017 Round 3)
    2017 中国大学生程序设计竞赛 女生专场 Building Shops (hdu6024)
    51nod 1084 矩阵取数问题 V2
    Power收集
    红色的幻想乡
    Koishi Loves Segments
    Wood Processing
    整数对
    Room and Moor
  • 原文地址:https://www.cnblogs.com/zhuomou/p/8449940.html
Copyright © 2011-2022 走看看