python 为什么有连接时分隔符不起作用?

xvw2m8pv  于 2023-05-21  发布在  Python
关注(0)|答案(2)|浏览(168)

当使用print函数+或 * 时,无法使用sep参数。
例如:
print("panda", "panda", sep=", ")
给出:
Pandas,Pandas
然而
使用的
print("panda" + "panda", sep=", ")

print("panda" * 2, sep=", ")
给出:
潘达潘达
为什么?
我知道,答案可能是“因为Python是这样设计的”。但更深层次的解释是什么呢?

u7up0aaq

u7up0aaq1#

print("panda" + "panda", sep=", ")

s = "panda" + "panda"
print(s, sep=", ")

在这两种情况下,您都只传递了一个要打印的字符串。没有多个字符串需要用sep=", "分隔。
为了测试你的理解,看看你是否能预测这将打印什么:

print("panda" + "panda", "panda", sep=", ")

pandapanda, panda

13z8s7eq

13z8s7eq2#

print功能设计用于多路输入。当使用逗号向print函数传递多个参数时,每个参数都被视为要打印的单独值。sep参数指定要在这些值之间使用的分隔符。
print("panda", "panda", sep=", ")的情况下,您提供了两个输入:第一只Pandas和第二只Pandas。sep参数被设置为“,“,因此输出将是第一个输入,后跟分隔符,然后是第二个输入。这将导致输出:"panda, panda"
但是,当使用+运算符连接两个字符串或使用*运算符重复字符串时,结果表达式是单个字符串。在print("panda" + "panda", sep=", ")的情况下,表达式"panda" + "panda"的计算结果为“pandapanda”,这是一个单一的输入。由于您只提供了一个输入,因此sep参数在本例中没有任何作用。
类似地,print("panda" * 2, sep=", ")计算为“pandapanda”,这也是一个字符串。由于sep参数没有分隔任何单独的值,因此它没有任何效果。
因此,当您向print函数传递多个参数时,sep参数有效,但当您有一个已经是连接或重复字符串的单个输入时,它没有任何效果。

相关问题