print(value, ..., sep=' ', end='\n', )
根据英文:sep是分隔,end是结尾,所以我一直认为:favorite = ‘Fishc’
for i in favorite:
print(i, sep = '&')
的返回值应该是:
F&i&s&h&c
但实际返回结果却不像我理解的那样…… sep 参数是用于 print() 函数在打印多个参数时分隔它们的。然而,你的例子中,print() 函数只打印了一个参数,即 i。所以 sep 参数在这里并没有起作用。
如果你想实现你想要的那个效果,可以用 * 把 favorite 解包成多个参数
示例代码:
favorite = 'Fishc'
print(*favorite, sep='&')
isdkz 发表于 2023-3-23 20:55
sep 参数是用于 print() 函数在打印多个参数时分隔它们的。然而,你的例子中,print() 函数只打印了一个参 ...
感谢指点。
1、print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
上面红色字体我错误理解成了‘sep:插入一个变量之间的字符串,默认是一个空格’,正确理解应该是‘sep:插入几个变量之间的字符串,默认是一个空格’
2、用 * 把 favorite 解包成多个参数----解包在这是什么意思?不太理解 lzb1001 发表于 2023-3-23 21:27
感谢指点。
1、print(...)
关于解包(unpacking)的概念,这是Python中一种特殊的语法。当我们在函数调用时使用星号(*)操作符,它会将一个可迭代对象(如列表或元组)“解包”成多个单独的参数。这样,我们可以将一个可迭代对象的元素作为多个独立的参数传递给函数。 本帖最后由 lzb1001 于 2023-3-23 21:51 编辑
isdkz 发表于 2023-3-23 21:32
关于解包(unpacking)的概念,这是Python中一种特殊的语法。当我们在函数调用时使用星号(*)操作符,它 ...
>>> favorite = ‘Fishc’
>>> print(*favorite, sep='&')
F&i&s&h&c
>>> print(**favorite, sep='&')
Traceback (most recent call last):
File "<pyshell#72>", line 1, in <module>
print(**favorite, sep='&')
TypeError: print() argument after ** must be a mapping, not str # 返回错误提示:**后面的参数必须是一个映射,而不能是一个字符串
然而我测试如下时:
>>> a = {'one':1, 'two':2}
>>> print(a)
{'one': 1, 'two': 2}
>>> print(*a, sep = '&')
one&two # 为何返回结果仅仅是key键,而不包含value值?
>>> print(**a, sep = '&') # 为何返回错误提示?
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
print(**a, sep = '&')
TypeError: 'one' is an invalid keyword argument for print() isdkz 发表于 2023-3-23 21:32
关于解包(unpacking)的概念,这是Python中一种特殊的语法。当我们在函数调用时使用星号(*)操作符,它 ...
print(*favorite, sep='&')
*的作用实际相当于把favorite = ‘Fishc’中F i s h c这五个字符传入print函数作为五个变量
是这样理解的吗?不知道这样表述有无错误? lzb1001 发表于 2023-3-23 21:48
>>> favorite = ‘Fishc’
>>> print(*favorite, sep='&')
1、为何返回结果仅仅是key键,而不包含value值
因为字典这个可迭代对象迭代出来的是键
2、为何返回错误提示?
因为 ** 会将字典解包成关键字参数,而 print 是不接受参数名为 one 和 two 的关键字参数的
你想打印值的话可以用以下代码:
a = {'one':1, 'two':2}
print(*a.values(), sep = '&')
lzb1001 发表于 2023-3-23 21:57
print(*favorite, sep='&')
*的作用实际相当于把favorite = ‘Fishc’中F i s h c这五个字符传入print ...
对的,
* 会解包出可迭代对象的每个元素来作为函数的位置参数
页:
[1]