python 中有很多地方用到星号,有时候会想知道这个*是干嘛用的,总结如下,有不当之处,还望不吝指出,谢谢.
1.乘法:
在很多时候是用作乘法的,例如:
In [90]: 2*7Out[90]: 14In [91]: a=10In [92]: a*10Out[92]: 100
当然还包括字符串,列表等等的乘,姑且都当做乘法吧.例如:
In [93]: "a"*10Out[93]: 'aaaaaaaaaa'In [94]: ['1']*10Out[94]: ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
2.乘方:
In [98]: 2**3Out[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]: 9In [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 8In [120]: print(*range(10))
01 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'}