Python 这两种方式的输出,与传参有什么不同?

Python 这两种方式的输出,与传参有什么不同?

问题描述:

>>> s = "asdf"
>>> print(*s)
a s d f
>>> print(s)
asdf
>>>
 

第一个,*s是一个变长参数,在此可以理解为拆包,打印时作为多个元素空格隔开打印,而第二个是将s字串传给打印函数,只会打印出字符串。

用*s是把列表或者字符串柝解成print函数的多个参数,参数之间的默认以空格作分隔符

s = "asdf"

print(*s)

等于

print(s[0],s[1],s[2],s[3],s[4])

这个去查一下*args 和 **kwargs的区别。这里print(*s)等价于print('a','s', 'd', 'f');

参考:https://docs.python.org/3/tutorial/controlflow.html#keyword-arguments