Python中由于撇号numb导致的字符串定义错误

2024-10-04 09:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在代码大战中,有一个问题:

Which of the given string definitions are incorrect?

  1. s = 'abacaba'

  2. s = "abacaba"

  3. s = ' 'abacaba' '

  4. s = ""abacaba""

  5. s = ' ' 'abacaba' ' '

  6. s = """abacaba"""

3和4中的定义是错误的。在

我的问题是,如果3和4是定义字符串的错误方式,那么5和6在类似的推理中不应该是错误的吗?在


Tags: ofthe字符串代码whichstring定义错误
3条回答

3和4是错误的,因为“”是空字符串,abacaba将被视为变量,因此您需要将其写为'' + str(abacaba) + '',这将合并您的字符串,并且在使用之前必须分配abacaba的值。在

现在,当您使用"""abacaba"""python时,您的答案将找到三个不同的字符串"""abacaba"和{},结果是'abacaba'。 如果你要写一个的字符串,那么你将得到一个的字符串

以下是几个例子:

>>> s="abc" "xyz"
>>> s
'abcxyz'
>>> s="1""abc""1"
>>> s
'1abc1'
>>> s="1"  "abc"  "1"
>>> s
'1abc1'
>>> s="1"abc"1"
SyntaxError: invalid syntax
>>> abc="2"
>>> s="1"abc"1"
SyntaxError: invalid syntax
>>> s="1"+abc+"1"
>>> s
'121'
>>> s=r"""abc"""  # raw string which will treat all content/special character between "" as your string
>>> s
'abc'

回答你的问题

当您使用3个单引号或3个双引号时,可以有一个跨multiple lines的字符串。这就是为什么你有它作为你的doc字符串。请看下面的例子。在

>>> s ="""Hello
... whats going on
... thats it"""
>>> s
'Hello\nwhats going on\nthats it'
>>>

但是,当使用2个单引号('')或使用2个双引号("")时,如果需要将字符串封装在它们内部,则引用如下所示。在

^{pr2}$

如果您不这样做,python解释器需要'Hello'的值,而不是将其视为字符串。在

在python中,三引号最常用于方法描述。这些方法描述称为docstrings,并表示为多行字符串""" """

下面是python中的一个示例。在

def testdocstring():
    """
    this is a test docstring method
    :return: None
    """
    pass

print testdocstring.__doc__

print语句的输出将是:

^{pr2}$

编辑:正如@Varad和@abccd所提到的,它也用于多行字符串文本。在

相关问题 更多 >