详解python中*号的用法

yipeiwu_com7年前Python基础

1、表示乘号

2、表示倍数,例如:

def T(msg,time=1):
  print((msg+' ')*time)

T('hi',3)

打印结果(打印3次):

hi hi hi

3、单个 * (1)、如:*parameter是用来接受任意多个参数并将其放在一个元组中。

>>> def demo(*p):
  print(p)
>>> demo(1,2,3)
(1, 2, 3)

(2)、函数在调用多个参数时,在列表、元组、集合、字典及其他可迭代对象作为实参,并在前面加 *

如 *(1,2,3)解释器将自动进行解包然后传递给多个单变量参数(参数个数要对应相等)。

>>> def d(a,b,c):
  print(a,b,c)

  
>>> d(1,2,3)

1 2 3

>>> a=[1,2,3]
>>> b=[1,2,3]
>>> c=[1,2,3]
>>> d(a,b,c)

[1, 2, 3] [1, 2, 3] [1, 2, 3]

>>> d(*a)
1
1 2 3

提示:序列解包要在关键参数和 **参数 之前进行处理

4、两个 ** 如: **parameter用于接收类似于关键参数一样赋值的形式的多个实参放入字典中(即把该函数的参数转换为字典)。

>>> def demo(**p):
  for i in p.items():
    print(i)
   
>>> demo(x=1,y=2)
(‘x', 1)
(‘y', 2)

知识点扩展:python中星号(*)和双星号(**)的用法

第一种情况:用在两表达式的中间,*表示乘法,**表示取幂,如:

>>> 2*5
10
>>> 2**7
128

第二种情况:用在变量的前面。

1,向函数传递参数,将变量中可迭代对象的元素拆解出来,作为独立的参数第传给函数,如:

>>> a=[1,2,3,4]
>>> print(*a,sep='\n')

>>> print(a[0],a[1],a[2],a[3],sep='\n')

>>>

 对于**,变量为字典,将其拆解出来,单独传给函数。如:

>>> dic={'a':1,'b':2,'c':3} 
>>> string='{a}-{b}-{c}'.format(**dic)  
>>> string  
'1-2-3'
>>> 
 

2,在函数定义中使用,收集参数。将参数捕捉到一个元组中,如:

>>> def sum(*num):
   return num
 
>>> sum(1,3,5,7)   
(1, 3, 5, 7)
>>> 
 

该用法允许我们创建自己的函数时,可以接收任意数量的参数。

双星号可以将参数捕捉到字典中,如:

>>> def pack(**dic):
   return dic
 
>>> pack(a=1,b=2,c=3)  
{'a': 1, 'b': 2, 'c': 3}
>>> 

总结

以上所述是小编给大家介绍的python中*号的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

Python 实现数据结构-循环队列的操作方法

今天我们来到了循环队列这一节,之前的文章中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法。 但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价...

Python OpenCV利用笔记本摄像头实现人脸检测

Python OpenCV利用笔记本摄像头实现人脸检测

本文实例为大家分享了Python OpenCV利用笔记本摄像头实现人脸检测的具体代码,供大家参考,具体内容如下 1.安装opencv 首先参考其他文章安装pip。 之后以管理员身份运行命...

Python模块学习 re 正则表达式

re.match   re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。 复制代码 代码如下: import re text = "JGood is a h...

在SQLite-Python中实现返回、查询中文字段的方法

博主在这个问题上卡了挺久的,贴出来解决方法帮助需要的朋友,直接上代码(测试环境:win10+Python2.7): # coding=utf-8 import sqlite3...

一些Python中的二维数组的操作方法

需要在程序中使用二维数组,网上找到一种这样的用法:   #创建一个宽度为3,高度为4的数组 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,...