python中*号用法总结

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'}