标识符中的无效字符

我正在处理 HP 代码战争 2012 中的字母分布问题。我不断收到一条错误消息,指出“标识符中的字符无效”。这是什么意思,如何修复?

这是包含信息的页面。

import string

def text_analyzer(text):
'''The text to be parsed and
the number of occurrences of the letters given back
be. Punctuation marks, and I ignore the EOF
simple. The function is thus very limited.

'''
result = {}

# Processing
for a in string.ascii_lowercase:
result [a] = text.lower (). count (a)

return result


def analysis_result (results):

# I look at the data
keys = analysis.keys ()
values \u200b\u200b= list(analysis.values \u200b\u200b())
values.sort (reverse = True )

# I turn to the dictionary and
# Must avoid that letters will be overwritten
w2 = {}
list = []

for key in keys:
item = w2.get (results [key], 0 )
if item = = 0 :
w2 [analysis results [key]] = [key]
else :
item.append (key)
w2 [analysis results [key]] = item

# We get the keys
keys = list (w2.keys ())
keys.sort (reverse = True )

for key in keys:
list = w2 [key]
liste.sort ()
for a in list:
print (a.upper (), "*" * key)


text = """I have a dream that one day this nation will rise up and live out the true
meaning of its creed: "We hold these truths to be self-evident, that all men
are created equal. "I have a dream that my four little children will one day
live in a nation where they will not be Judged by the color of their skin but
by the content of their character.
# # # """

analysis result = text_analyzer (text)
analysis_results (results)

已邀请:

fish - Hadooper

该错误SyntaxError: invalid character in identifier意味着您在变量名、函数等中间有一些不是字母、数字或下划线的字符。实际的错误消息将如下所示:

File "invalchar.py", line 23
values = list(analysis.values ())
^
SyntaxError: invalid character in identifier
这会告诉您实际问题是什么,因此您不必猜测“我在哪里有无效字符”?好吧,如果您查看该行,就会发现其中包含一堆非打印垃圾字符。把它们拿出来,你就会过去的。

如果您想知道实际的垃圾字符是什么,我从您的代码中复制了违规行并将其粘贴到 Python 解释器中的字符串中:

>>> s=' values ​​= list(analysis.values ​​())'
>>> s
' values \u200b\u200b= list(analysis.values \u200b\u200b())'
所以,那是\u200b,或零宽度空间。这解释了为什么您在页面上看不到它。最常见的是,您获得这些是因为您从 StackOverflow 或 wiki 等网站或 PDF 文件中复制了一些格式化(非纯文本)代码。

如果您的编辑器没有为您提供查找和修复这些字符的方法,只需删除并重新键入该行即可。

当然,你也至少有两个IndentationError不缩进的东西,至少还有一个SyntaxError来自空格(比如= =代替==)或下划线变成空格(比如analysis results代替analysis_results)。

问题是,你是如何让你的代码进入这种状态的?如果您使用 Microsoft Word 之类的软件作为代码编辑器,那就是您的问题。使用文本编辑器。如果不是……好吧,无论根本问题是什么导致您最终得到这些垃圾字符、损坏的缩进和多余的空格,请在尝试修复代码之前修复它。

要回复问题请先登录注册