2016-06-15 75 views
0

对于我的一个类,我必须制作一个非常基本的计算器。我想以这样的方式编写代码,用户可以输入他们想要做的事情(例如√64),然后按回车并获得答案。我写这样的:√未在终端中识别

如果在操作 '√': 对squareRoot = operation.replace( '√', '') squareRootFinal = math.sqrt(INT(对squareRoot))

当我运行在这IDLE,它就像一个魅力。但是,当我在终端中运行此操作时,出现以下错误:

SyntaxError:第50行文件x.py中的非ASCII字符'\ xe2',但未声明编码;

有什么建议吗?

+1

重复http://stackoverflow.com/questions/728891/correct-way-to-define-python-source-code-encoding? –

回答

0

只需声明编码。 Python在这里开始有点谨慎,不会猜测你的文本文件的编码。 IDLE是一个文本编辑器,因此已经猜到了编码并将内容存储在内部作为unicode,它可以直接传递给Python解释器。

#!/usr/bin/env python3 
# -*- coding: UTF-8 -*- 

在文件的顶部。 (现在你的编码不​​是UTF-8的可能性不大)。

作为参考,在过去的时间里,文件有各种不同的可能的编码。这意味着当写入磁盘时,相同的文本可以以不同的二进制方式存储。几乎所有的编码都对字节0到127有相同的解释 - ASCII子集。但是如果文件中出现其他字节,它们的含义可能不明确。然而,近年来,UTF-8已经成为迄今为止最常见的编码方式,所以它几乎总是一个安全的猜测。

+0

你钉了它!非常感谢你 – Zardoz