我在编码计算器时遇到了问题

问题描述:

我收到语法错误: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

您需要修改的代码在几个地方 - 首先,你需要添加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

raw_input正在返回一个字符串,可能是 - see this question,例如。尝试做int(number) - 但要做好准备,你的人可能不会给你一个整数!