2016-06-15 78 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