python 中有很多地方用到星号,有时候会想知道这个*是干嘛用的,总结如下,有不当之处,还望不吝指出,谢谢.
1.乘法:
在很多时候是用作乘法的,例如:
In [90]: 2*7 Out[90]: 14 In [91]: a=10 In [92]: a*10 Out[92]: 100
当然还包括字符串,列表等等的乘,姑且都当做乘法吧.例如:
In [93]: "a"*10 Out[93]: 'aaaaaaaaaa' In [94]: ['1']*10 Out[94]: ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
2.乘方:
In [98]: 2**3
Out[98]: 8
3.切片当中的使用(解压可迭代对象赋值给多个变量):
In [108]: a =[0,1,2,3,4,5,6,7,8,9] In [109]: start,*midle,end=a In [110]: start Out[110]: 0 In [111]: end Out[111]: 9 In [112]: midle Out[112]: [1, 2, 3, 4, 5, 6, 7, 8]
4.对于可迭代对象的用法(不晓得怎么描述,姑且这样叫):
In [117]: a=[1, 2, 3, 4, 5, 6, 7, 8] In [118]: print(a) [1, 2, 3, 4, 5, 6, 7, 8] In [119]: print(*a) 1 2 3 4 5 6 7 8 In [120]: print(*range(10)) 0 1 2 3 4 5 6 7 8 9
-------------------------2017年10月22日16:04:30更新----------------------------------------------
def foo(*args):
for v in args:
print(v)
a = ['h', 'e', 'l', 'l', 'o']
foo('h', 'e', 'l', 'l', 'o')
foo(*a)
def f(**kwargs):
# print(kwargs)
for k, v in kwargs.items():
print("{}>>>>{}".format(k, v))
f(name="tom", age=20)
f(**{'age': 20, 'name': 'tom'})
def func(*args, **kwargs):
for v in args:
print(v)
for k, v in kwargs.items():
print("{}>>>>{}".format(k, v))
a = ['h', 'e', 'l', 'l', 'o']
func(*a, **{'age': 20, 'name': 'tom'})
------------------------------------------------------------------------------------------------------
5.形式参数
def func(*args,**kwargs): print(args) print(kwargs) func(1, 2, 3, 4, 5, name="123", age="10") # (1, 2, 3, 4, 5) # {'age': '10', 'name': '123'}