2017-04-26 75 views
0

我收到語法錯誤:Traceback(最近調用最後一次): 文件「python」,第4行,在 TypeError:不支持的操作數類型爲**或POW():「統一」和「廉政」我在編碼計算器時遇到了問題

編輯:好了,所以這是我的新的代碼,一旦它這樣做,直到你輸入的東西是不是數字

您可以輸入另一個號碼,它會重置
while True: 
    print 'Welcome to the "Square Root Calculator"' 
    print 
    number = float(raw_input ('Insert a number: ')) 
    answer = number ** (1./2) 
    print 
    if number: 
     print ('Square Root: ' + str(answer)) 
    else: 
     break 
    print '#=====================================================#' 
    print '|              |' 
    print '#=====================================================#' 
pass 
+2

林不知道,但什麼完成兩個乘法是什麼意思? ** –

+2

這是Python中的指數。 – kcrisman

回答

0

您需要修改的代碼在幾個地方 - 首先,你需要添加int各地raw_input ('Insert a number: '),否則number是海峽型的。您還需要在answer附近添加str,因爲您無法添加字符串和數字。最後,用1/2替換1/2,就像在python 2上一樣,1/2是0. 爲了創建空行,您可以在相應的位置添加\n

這裏是修正版本:

print 'Welcome to the "Square Root Calculator\n' 
number = float(raw_input ('Insert a number:')) 
answer = number ** (1./2) 
if number: 
    print ('\nSquare Root: ' + str(answer)) 
+0

因此,在raw_input之前添加'int'使得它們所輸入的字符將被定義爲一個數字? – Zerp

+0

是的,特別是它將被描述爲int。如果你想允許float輸入,你可以用float替換int。 –

+0

是否有可能導致代碼無法工作的int和float之間的任何區別? – Zerp

0

raw_input正在返回一個字符串,可能是 - see this question,例如。嘗試做int(number) - 但要做好準備,你的人可能不會給你一個整數!