语法错误:扫描字符串文字时 EOL -Python [已关闭]

问题描述 投票:0回答:4

我在扫描这部分中的字符串文字时收到

SyntaxError:
EOL。

system.cpu.workload = LiveProcess(cmd = 'hello’, executable ='hello')

为什么会出现这种情况?

python python-2.7 python-3.x
4个回答
7
投票

问题是您在

hello
(
cmd = 'hello’
) 周围使用了不同类型的引号。左边一个是 ASCII 单引号,另一个是
RIGHT SINGLE QUOTATION MARK

>>> 'hello’
  File "<ipython-input-56-3231cc2cf7bf>", line 1
    'hello’
            ^
SyntaxError: EOL while scanning string literal

>>> 'hello'
'hello'

实际上是一个unicode字符

>>> "’".decode('utf-8')
u'\u2019'

2
投票

“hello”周围的右引号是错误的 - 它是反引号,而不是普通的引号。


1
投票

您的代码中似乎有错误的单引号。 Python 中的引号分为三种:

" double quote
' single quote
` backtick

双引号和单引号可以互换使用;如果值包含另一种,请使用一种,以避免使用反斜杠的丑陋转义序列。

然而,反引号更像是一个运算符,并将其包含的值转换为其“字符串表示形式”。

在我看来,好像您在代码中混合了单引号和反引号。


1
投票

您无法使用 '...' 创建多行字符串。您必须使用 ''' ... '''""" ... """

© www.soinside.com 2019 - 2024. All rights reserved.