【问题标题】:Why does s7="hello",'world'; print(s7) in Python emit ('hello', 'world')? [duplicate]为什么 s7="hello",'world'; Python中的print(s7)发出('hello','world')? [复制]
【发布时间】:2018-12-16 20:57:56
【问题描述】:

我是 python 新手,正在尝试用字符串做一些实验。

我有以下命令。

s7="hello",'world'
print(s7)

输出是:('hello', 'world')

据我了解,它不应该打印尖括号,也不应该用单引号打印 hello。你能帮我理解一下吗?

【问题讨论】:

  • 您正在构建一个包含两个字符串的元组。您的分配等同于s7=("hello",'world')。您可以省略 () 的事实是语法糖。

标签: python python-3.x


【解决方案1】:

那些不是角括号。它们是括号,它们表明您正在打印的是一个元组。元组是一种序列,在这种情况下是一对字符串。

你的第一个字符串是"hello",你的第二个字符串是'world'。

您可以将它们表示为 'hello' 和 "world" 并生成完全相同的字符串。引号(任何一种)都用于指示字符串的内容,但它们不是字符串内容的部分。

【讨论】:

    【解决方案2】:

    您分配的不是 1,而是 2 个字符串(在一个元组中)给s7,它解释了它是如何打印的。

    s7 = "\"hello\",'world'"
    

    似乎它会分配你想要的字符串。 (注意使用\"表示" inside 由"s 包围的字符串,正如@NielsHenkens 指出的那样。)

    【讨论】:

    • 添加到这个答案:\ 被称为“转义字符”。它确保它后面的字符将按“原样”使用。所以\" 将确保双引号被视为字符串的一部分,而不是表示字符串结束的第二个引号。
    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 2016-06-01
    • 1970-01-01
    • 2015-05-07
    • 2010-11-07
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多