在引号内使用引号

2024-12-17 08:30:00
admin
原创
125
摘要:问题描述:当我想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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用