无法确定语法错误的原因:标识中的字符无效

2024-04-29 09:38:11 发布

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

我试图使用Brickman在legoev3上使用Python编码。当我试图运行我的代码时,我得到以下错误

>>robot@ev3dev:~$ python3 CoffeePi_Test/Main.py
File "CoffeePi_Test/Main.py", line 14
  tags=[‘coffeepi’]
                 ^
  SyntaxError: invalid character in identifier

这是我的密码。我不知道是什么触发了这个错误。在

^{pr2}$

Tags: 代码pytest编码main错误linetags
1条回答
网友
1楼 · 发布于 2024-04-29 09:38:11

幽默在stackoverflow上通常不受欢迎,但是这个规则也有例外,所以让我们把这个答案设为这样的例外。在

但让我们回到实际问题上来:

Can't determine cause of SyntaxError: invalid character in identifier

I am not sure what is triggering this error.

我不得不承认,我写这个完全正确的答案时咯咯一笑:):

The cause of the SyntaxError is an invalid character in identifier.

标识符中的无效字符是以下字符:

[']

U+2019'e2 80 99右单引号

下面是Python代码,您可以用它自己找出导致问题的“字符”的详细信息:

#!/usr/bin/ python3
# -*- coding: <utf8> -*-
# tags=[’coffeepi’]
coffeepi = "’"
print(ord(coffeepi), hex(ord(coffeepi)), bin(ord(coffeepi))) 

什么指纹:

8217, 0x2019 , 0b10000000011001

看看这里

http://www.utf8-chartable.de/unicode-utf8-table.pl 我从那里得到关于这个角色的信息,这是这里 https://docs.python.org/3/reference/lexical_analysis.html#identifiers 有关标识符中允许哪些字符的详细信息,因为并不是所有字符都是,而且显然这一个字符不属于允许字符的范围。在

顺便说一句:这个“字符”不像ASCII字符那样是一个单字节字符。这个字符在UTF-8中的编码方式在Unicode表(e2 80 99)中指定。在

还有。。。在您在问题中提供的整个代码中,没有跟踪到您指定的导致错误消息的内容。在

你怎么能解决这个问题?在

Just replace these strange quotes with standard quotes " "

附录:奇怪的引号应该是一个字符串周围的标准引号,并将一个单词放入列表中。当Python解释器遇到这些奇怪的引号时,它假设它们是变量名(标识符)的一部分,而不是字符串规范的一部分。这就是为什么会出现令人困惑的错误消息的原因,因为您从代码中一眼就看不到,为什么Python解释器认为它处理的是变量名(标识符),而不是应该转换成Python字符串的带引号的文本部分。在

相关问题 更多 >