对于我的一类我必须做一个非常基本的计算器。我想以这样一种方式编写代码,即用户可以输入他们想要做的事情(例如√64)按回车并得到答案。我写了这个:
如果'√'在操作中: squareRoot = operation.replace('√','') squareRootFinal = math.sqrt(int(squareRoot))
当我在IDLE中运行它时,它就像一个魅力。但是,当我在终端中运行它时,会出现以下错误:
SyntaxError:非ASCII字符' \ xe2'在第50行的文件x.py中,但没有声明编码;
有什么建议吗?
答案 0 :(得分:0)
只需声明编码即可。 Python在这里开始有点谨慎,而不是猜测文本文件的编码。 IDLE是一个文本编辑器,因此已经在内部猜测编码和存储内容为unicode,它可以直接传递给Python解释器。
把
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
位于文件顶部。 (现在你的编码不是UTF-8,这很不可能。)
作为参考,在过去,文件有各种不同的可能编码。这意味着当写入磁盘时,相同的文本可以以二进制的不同方式存储。几乎所有编码都对字节0到127(ASCII子集)具有相同的解释。但如果文件中出现任何其他字节,则其含义可能不明确。
然而,近年来,UTF-8已经成为最常见的编码,所以它几乎总是安全的猜测。