【问题标题】:Unexpected character after a line continuation character in pythonpython中的换行符后出现意外字符
【发布时间】:2020-09-28 16:48:27
【问题描述】:

我正在尝试在 python 中构建俄罗斯方块游戏,但我收到了与这段代码相关的上述错误。我已经尝试取出任何东西直到斜线,但它仍然无法正常工作。有人可以帮助新手吗?

# SHAPE FORMATS

S = [[\'.....\',
    \'.....\',
    \'..00.\',
    \'.00..\',
    \'.....\'],
    [\'.....\',
    \'..0..\',
    \'..00.\',
    \'...0.\',
    \'.....\']]

【问题讨论】:

标签: python multiline


【解决方案1】:

您的示例中无需转义单引号。

试试:

S = [['.....',
    '.....',
    '..00.',
    '.00..',
    '.....'],
    ['.....',
    '..0..',
    '..00.',
    '...0.',
    '.....']]

【讨论】:

  • 我注意到其他人在我发布“答案”的同时发表了评论。我在这里相当新,最近才突破了允许我发布 cmets 的 50pt 水平。一个人如何决定是发布答案还是发表评论?有没有关于此的规则/建议?
  • jim_washer:是的,这是一个判断电话:对于可以在单行评论中给出的琐碎答案,特别是在问题可能被关闭的情况下,可以发表评论,或者同时发表评论和回答。对于与 SO 上现有 Q&A 重复的答案,我们甚至不发布答案,我们关闭为重复。
【解决方案2】:

字符'用于表示字符串,

s = 'this is a string'

为了在字符串中使用字符',它们可以由\继续

s = 'this string has a \' in it'

根据您对\ 的使用判断,您希望每行的两边都有一个'。这意味着您仍然需要一组 ' 来封装实际的字符串:

S = [['\'.....\'',
    '\'.....\'',
    '\'..00.\'',
    '\'.00..\'',
    '\'.....\''],
    ['\'.....\'',
    '\'..0..\'',
    '\'..00.\'',
    '\'...0.\'',
    '\'.....\'']]

如果您只想在每行的任一侧都没有 ' 的行,它看起来像这样:

S = [['.....',
    '.....',
    '..00.',
    '.00..',
    '.....'],
    ['.....',
    '..0..',
    '..00.',
    '...0.',
    '.....']]

【讨论】:

    【解决方案3】:

    您不需要转义单引号。 您可以对多行​​字符串使用三引号,并使用this trick to start the first line with """\ so you don't get unwanted leading newline

    然后可以使用.split()将两个字符串拆分成两个子列表。

    S = [ """\
    .....
    .....
    ..00.
    .00..
    .....""".split(),
    
    """\
    .....
    ..0..
    ..00.
    ...0.
    .....""".split() ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2015-01-17
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多