标识符中的无效字符

数据挖掘 Python 分类 scikit-学习 张量流 决策树
2022-02-20 06:35:50

我运行了这段代码,但这不起作用,我使用的是 python 3 btw,我检查了语法一百万次。我已经安装了所有必要的软件包并且它们都是最新的,这是我运行的代码:

from sklearn import tree
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
labels = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
print(clf.predict([[150, 0]]))

这是控制台错误消息(我不知道它到底叫什么,如果你知道请告诉我):

pydev debugger: starting

Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\ptvsd_launcher.py", line 111, in <module>
    vspd.debug(filename, port_num, debug_id, debug_options, run_as)
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\debugger.py", line 36, in debug
    run(address, filename, *args, **kwargs)
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\_main.py", line 47, in run_file
    run(argv, addr, **kwargs)
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\_main.py", line 98, in _run
    _pydevd.main()
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\pydevd.py", line 1628, in main
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\pydevd.py", line 1035, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\_pydev_imps\_pydev_execfile.py", line 25, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:\Users\Sanjay\Documents\python files\SLNforVt\VisualTest\VisualTest.py", line 6
    print(clf.predict([[150, 0]]))
                                  ^
SyntaxError: invalid character in identifier

我在这里使用 Visual Studios,我不知道这是否会影响这个程序,但我也使用 python idle 尝试过。我编写的其他 Python 程序在 Visual Studios 上运行良好,没有任何错误。

2个回答

您的文本有一些编辑器没有显示的字符。使用在线的 UTF-8 编码器,可以看到行尾有:

\x29\xef\xbb\xbf\x0a

当它应该只是一个接近的括号和一个新的行时,例如:

\x29\x0a

您需要删除被冒犯的字符。处理这些情况的最佳方法是选择编译器投诉两侧的文本区域并将其全部删除,然后重新键入文本。

清理后,您的代码会产生:

[1]

PS:该错误输出称为堆栈跟踪,并且完全正确,指示的位置存在无效字符。

在从同事那里获得文件后,我在 sublime text 3 中偶然发现了这个问题。

utf-8我通过使用不同的编码(从to western (iso 8859-15)重新打开文件解决了这个问题。

这是中的代码utf-8

在此处输入图像描述

这是代码iso 8859-15

在此处输入图像描述

我删除了所有这些奇怪的字符,并使用该save with encoding功能保存了我的文件。