当使用print函数+或 * 时,无法使用sep参数。例如:print("panda", "panda", sep=", ")给出:Pandas,Pandas然而使用的print("panda" + "panda", sep=", ")或print("panda" * 2, sep=", ")给出:潘达潘达为什么?我知道,答案可能是“因为Python是这样设计的”。但更深层次的解释是什么呢?
print("panda", "panda", sep=", ")
print("panda" + "panda", sep=", ")
print("panda" * 2, sep=", ")
u7up0aaq1#
与
s = "panda" + "panda" print(s, sep=", ")
在这两种情况下,您都只传递了一个要打印的字符串。没有多个字符串需要用sep=", "分隔。为了测试你的理解,看看你是否能预测这将打印什么:
sep=", "
print("panda" + "panda", "panda", sep=", ")
pandapanda, panda
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参数有效,但当您有一个已经是连接或重复字符串的单个输入时,它没有任何效果。
print
sep
"panda, panda"
+
*
"panda" + "panda"
2条答案
按热度按时间u7up0aaq1#
与
在这两种情况下,您都只传递了一个要打印的字符串。没有多个字符串需要用
sep=", "
分隔。为了测试你的理解,看看你是否能预测这将打印什么:
pandapanda, panda
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
参数有效,但当您有一个已经是连接或重复字符串的单个输入时,它没有任何效果。