如何从方括号中的变量打印值?

How to print a value from a variable in square brackets?

last= "smith"

我正在尝试打印这一行:John [Smith]。

答案是

last = "Smith"
msg = "John" + " ["+ last +"] "
print(msg)

但是我不明白为什么答案是这样的。为什么我需要加号? 方括号里的引号不会导致"+last+"变成字符串而不是打印出值吗? 我试着翻阅了我的笔记,但无法理解背后的原因。

这样想。

last = "Smith"
msg = "John"
msg = msg + " ["
msg = msg + last
msg = msg + "] "
print(msg)

如果有帮助,请在每次分配给 msg 后添加 print(msg),看看它如何发展。

有很多很多,很多其他方法可以做到这一点。参见 How do I put a variable inside a string?

方括号本身已经是一个字符串,所以它们不像普通的代码实体。您需要加号才能将您创建的字符串添加到一个字符串中。

first = "John"
last = "Smith"
left_b = " ["
right_b ="] "

msg = first + left_b + last + right_b
print(msg)

这与您正在尝试做的事情相同,但一切都是变数。

也可以这样写,避免使用字符串注入加号:

last = "Smith"
msg = "John {}".format(last)
msg = "John" + " ["+ last +"] "

Python 将引号解释为字符串定界符 - 引号内的任何内容都被视为字符串,而不是 python 代码。

所以这里" ["是一个字符串,所以字符串拼接需要加号