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

问题描述

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)

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

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

,
msg = "John" + " ["+ last +"] "

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

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

,

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

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

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

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

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

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