SyntaxError:行延续ch后出现意外字符

2024-09-30 07:29:16 发布

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

我正在用doctest测试一个代码,我想在测试前做如下评论:

Tests:
>>> part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\    #False, 1, 0
    ('Ana', 'Toquio', 21098, '06-12', 1182),\
    ('Ana', 'Sao Paulo', 21098, '04-12', 1096)])
    [2, 1]

问题是,当我在shell中运行代码时,它会给我一个synthax错误:

^{pr2}$

Tags: 代码false错误评论testsshelldoctestsao
1条回答
网友
1楼 · 发布于 2024-09-30 07:29:16

不能在行继续符\后面放任何东西。反斜杠后面有注释:

... \     #False, 1, 0

删除注释,换行必须直接跟在\后面:

^{pr2}$

注意part(..)调用后的额外\,以确保[2, 1]片是它的一部分!请参阅参考文档的Explicit line joining section

A line ending in a backslash cannot carry a comment. [...] A backslash is illegal elsewhere on a line outside a string literal.

但是,您根本不需要在括号内使用行延续符,逻辑行将自动扩展,直到所有括号和方括号都闭合:

part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),    # False, 1, 0
      ('Ana', 'Toquio', 21098, '06-12', 1182),
      ('Ana', 'Sao Paulo', 21098, '04-12', 1096)])[2, 1]

当依赖括号来扩展逻辑行时,可以包含注释。在

Implicit line joining section

Expressions in parentheses, square brackets or curly braces can be split over more than one physical line without using backslashes. [...] Implicitly continued lines can carry comments.

相关问题 更多 >

    热门问题