连接相邻字符串文字时的Python运算符优先级

时间:2017-08-14 13:24:46

标签: python

文档说两个彼此相邻的字符串文字是连接在一起的。例如:

>>>print("py" "thon")
python

但是,此功能是在编译时实现的,而不是像+和*运算符那样的运行时,因此会产生这种有趣的效果:

>>>print(2 * "py" + "thon")
pypython
>>>print(2 * "py" "thon")
pythonpython

我理解为什么会在语言中发生这种情况,但我无法想到这样的原因。有没有理由,或者只是让它一个人更容易?

1 个答案:

答案 0 :(得分:1)

坦率地说,如果我今天设计python,我会做

print ("py" "thon")

语法错误

相同
print (5 3)

我猜想连接相邻字符串的原因是为了与bash / perl

保持一致
echo "py""thon"