将变量放入字符串(引号)
Posted
技术标签:
【中文标题】将变量放入字符串(引号)【英文标题】:Putting a variable into a string (quote) 【发布时间】:2016-08-29 04:03:01 【问题描述】:帮助我无法让它工作,我试图将变量年龄放入字符串中,但它不会正确加载变量。
这是我的代码:
import random
import sys
import os
age = 17
print(age)
quote = "You are" age "years old!"
给出这个错误:
File "C:/Users/----/PycharmProjects/hellophyton/hellophyton.py", line 9
quote = "You are" age "years old!"
^
SyntaxError: invalid syntax
Process finished with exit code 1
【问题讨论】:
【参考方案1】:您应该在这里使用字符串格式化程序,或连接。对于串联,您必须将int
转换为string
。您不能将整数和字符串连接在一起。
如果您尝试,这将引发以下错误:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
格式:
quote = "You are %d years old" % age
quote = "You are years old".format(age)
连接(一种方式)
quote = "You are " + str(age) + " years old"
编辑:正如 J.F. Sebastian 在评论中所指出的,我们还可以执行以下操作
在 Python 3.6 中:
f"You are age years old"
早期版本的 Python:
"You are age years old".format(**vars())
【讨论】:
如果+
符号只是在字符串文字之间,您可以跳过它们。例如:"You are" "17" "years old!"
但是您需要加号来连接字符串变量和字符串文字:"You are" + age + "years old!"
是的,但这只是隐式字符串连接。曾经有轻微的、非常轻微的性能改进,但随着最新的实现,这不再是真的了。另外,我认为这是不好的做法。显式 > 隐式使事情更难调试。
在 Python 3.6 中提及 f"You are age years old"
或在早期 Python 版本中提及 "You are age years old".format(**vars())
。
谢谢你帮我修好了!
@carlitos081 例如,后者可能会产生答案中提到的TypeError。【参考方案2】:
这是一种方法:
>>> age = 17
>>> quote = "You are %d years old!" % age
>>> quote
'You are 17 years old!'
>>>
【讨论】:
【参考方案3】:您需要使用+
符号将其插入到字符串中,如下所示:
quote = "You are " + age + " years old!"
您可以在Python's string documentation 上阅读有关其他方法的更多信息。
【讨论】:
以上是关于将变量放入字符串(引号)的主要内容,如果未能解决你的问题,请参考以下文章