在引号内使用引号

2024-12-17 08:30:00
admin
原创
127
摘要:问题描述:当我想print在 Python 中执行一个命令并且需要使用引号时,我不知道如何在不关闭字符串的情况下执行此操作。例如:print " "a word that needs quotation marks" " 但是当我尝试执行上述操作时,我最终关闭了字符串,...

问题描述:

当我想print在 Python 中执行一个命令并且需要使用引号时,我不知道如何在不关闭字符串的情况下执行此操作。

例如:

print " "a word that needs quotation marks" "

但是当我尝试执行上述操作时,我最终关闭了字符串,并且无法将我需要的单词放在引号之间。

我怎样才能做到这一点?


解决方案 1:

您可以通过以下三种方式之一完成此操作:

  1. 同时使用单引号和双引号:

print('"A word that needs quotation marks"')
"A word that needs quotation marks"
  1. 转义字符串中的双引号:

print("\"A word that needs quotation marks\"")
"A word that needs quotation marks" 
  1. 使用三重引号字符串:

print(""" "A word that needs quotation marks" """)
"A word that needs quotation marks" 

解决方案 2:

你需要逃离它。

>>> print("The boy said \"Hello!\" to the girl")
The boy said "Hello!" to the girl
>>> print('Her name\'s Jenny.')
Her name's Jenny.

请参阅字符串文字的 Python 页面。

解决方案 3:

Python 接受 " 和 ' 作为引号,因此您可以这样做:

>>> print '"A word that needs quotation marks"'
"A word that needs quotation marks"

或者,只需逃脱内心的“

>>> print "\"A word that needs quotation marks\""
"A word that needs quotation marks"

解决方案 4:

使用文字转义符``

print("Here is, \"a quote\"")

这个字符的基本含义是忽略我的下一个字符的语义上下文,并按照其字面意义来处理它

解决方案 5:

当您有几个像这样的单词想要连接在一个字符串中时,我建议使用format或,f-strings这将大大提高可读性(在我看来)。

举个例子:

s = "a word that needs quotation marks"
s2 = "another word"

现在你可以做

print('"{}" and "{}"'.format(s, s2))

这将打印

"a word that needs quotation marks" and "another word"

从 Python 3.6 开始,你可以使用:

print(f'"{s}" and "{s2}"')

产生相同的输出。

解决方案 6:

重复中常见的一种情况是要求对外部进程使用引号。一种解决方法是不使用 shell,这样就不需要一级引号了。

os.system("""awk '/foo/ { print "bar" }' %""" % filename)

可以替换为

subprocess.call(['awk', '/foo/ { print "bar" }', filename])

filename(这也修复了 shell 元字符需要从 shell中转义的错误,原始代码未能做到这一点;但如果没有 shell,就不需要这样做)。

当然,在绝大多数情况下,您根本不想要或不需要外部流程。

with open(filename) as fh:
    for line in fh:
        if 'foo' in line:
            print("bar")

解决方案 7:

我很惊讶还没有人提到显式转换标志

>>> print('{!r}'.format('a word that needs quotation marks'))
'a word that needs quotation marks'

该标志是内置函数1!r的简写。它用于打印对象表示, 而不是。repr()`object.__repr__()`object.__str__()

但有一个有趣的副作用

>>> print("{!r}      {!r}      {!r}      {!r}".format("Buzz'", 'Buzz"', "Buzz", 'Buzz'))
"Buzz'"      'Buzz"'     'Buzz'      'Buzz'

请注意,不同引号的组合如何以不同的方式处理,以使其适合 Python 对象2的有效字符串表示。


1 如果有人知道其他情况,请纠正我。

2 问题的原始示例" "word" "不是 Python 中的有效表示

解决方案 8:

这在 IDLE Python 3.8.2 中对我有用

print('''"A word with quotation marks"''')

三重单引号似乎允许您将双引号作为字符串的一部分。

解决方案 9:

在 Windows 上的 Python 3.2.2 中,

print(""""A word that needs quotation marks" """) 

还可以。我觉得是 Python 解释器的增强。

解决方案 10:

您还可以尝试字符串加法:
print " "+'"'+'a word that needs quotation marks'+'"'

解决方案 11:

用单引号括起来,例如

print '"a word that needs quotation marks"'

或者用双引号括起来

print "'a word that needs quotation marks'"

或者使用反斜杠 \ 来转义

print " \"a word that needs quotation marks\" "

解决方案 12:

如果您不想使用转义字符,而实际上想打印引号而不说""等等,您可以告诉 python 打印"字符的 ASCII 值。引号字符的 ASCII 值为 34,(单引号为 39)

在 Python 3 中

print(f'{chr(34)}')

输出:
"

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1590  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1361  
  信创产品在政府采购中的占比分析随着信息技术的飞速发展以及国家对信息安全重视程度的不断提高,信创产业应运而生并迅速崛起。信创,即信息技术应用创新,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。政府采购作为推动信创产业发展的重要力量,其对信创产品的采购占比情况备受关注。这不仅关系到信创产业的发展前...
信创和国产化的区别   18  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。近年来,国货国用信创发展势头迅猛,在诸多领域取得了显著成果。这一发展趋势对科技创新产生了深远的推动作用,不仅提升了我国在信息技术领域的自主创新能力,还为经济社会的数字化转型提供了坚实支撑。信创推动核心技术突破信创产业的发展促使企业和科研...
信创工作   18  
  信创技术,即信息技术应用创新产业,旨在实现信息技术领域的自主可控与安全可靠。近年来,信创技术发展迅猛,对中小企业产生了深远的影响,带来了诸多不可忽视的价值。在数字化转型的浪潮中,中小企业面临着激烈的市场竞争和复杂多变的环境,信创技术的出现为它们提供了新的发展机遇和支撑。信创技术对中小企业的影响技术架构变革信创技术促使中...
信创国产化   19  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用