将变量放入字符串(引号)

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 上阅读有关其他方法的更多信息。

【讨论】:

以上是关于将变量放入字符串(引号)的主要内容,如果未能解决你的问题,请参考以下文章

如何将双引号放入字符串文字中?

学习记录--如何将exec执行结果放入变量中?

如何在 Powerhsell 中定义同时包含符号双引号和单引号的字符串?

如何从 JSON 字符串中删除括号和引号

Linux Shell编程二

使用 Mandrill 时的 Ruby 引号语法