SyntaxError: unexpected character after line continuation character
SyntaxError: unexpected character after line continuation character
我正在用 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 中的代码时,它给我一个语法错误:
File "/home/user/Desktop/file.py", line 44, in __main__.part
Failed example:
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\ #False, 1, 0
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/doctest.py", line 1315, in __run
compileflags, 1) in test.globs
File "<doctest __main__.part[2]>", line 1
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\ #False, 1, 0
^
SyntaxError: unexpected character after line continuation character
您不能在行继续符 \
之后放置 任何内容 。您在反斜杠后有评论:
... \ #False, 1, 0
去掉注释,换行直接跟在\
:
后面
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\
('Ana', 'Toquio', 21098, '06-12', 1182),\
('Ana', 'Sao Paulo', 21098, '04-12', 1096)])\
[2, 1]
请注意 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.
我正在用 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 中的代码时,它给我一个语法错误:
File "/home/user/Desktop/file.py", line 44, in __main__.part
Failed example:
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\ #False, 1, 0
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/doctest.py", line 1315, in __run
compileflags, 1) in test.globs
File "<doctest __main__.part[2]>", line 1
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\ #False, 1, 0
^
SyntaxError: unexpected character after line continuation character
您不能在行继续符 \
之后放置 任何内容 。您在反斜杠后有评论:
... \ #False, 1, 0
去掉注释,换行直接跟在\
:
part([('Eva', 'Sao Paulo', 21098, '04-12', 1182),\
('Ana', 'Toquio', 21098, '06-12', 1182),\
('Ana', 'Sao Paulo', 21098, '04-12', 1096)])\
[2, 1]
请注意 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.