【问题标题】:I'm having trouble coding a calculator [duplicate]我在编写计算器时遇到问题 [重复]
【发布时间】:2017-04-26 02:35:32
【问题描述】:

我收到语法错误:Traceback(最近一次调用最后一次): 文件“python”,第 4 行,在 类型错误:** 或 pow() 不支持的操作数类型:'unicode' 和 'int'

编辑:好的,这是我的新代码,它会在完成后重置,这样你就可以输入另一个数字,直到你输入不是数字的东西

 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

【问题讨论】:

  • 我不确定,但是两个乘法是什么意思? **
  • 这是 Python 中的幂运算。

标签: python python-2.7 calculator square-root


【解决方案1】:

您需要在几个地方修改代码- 首先你需要在raw_input ('Insert a number: ') 周围添加int,否则number 是str 类型。您还需要在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))

【讨论】:

  • 所以在 raw_input 之前添加 'int' 使得他们输入的字符将被表征为数字?
  • 是的,特别是它的特征是 int。如果你也想允许浮点输入,你可以用浮点替换 int。
  • int 和 float 之间是否存在可能导致代码无法工作的差异?
  • 如果你想找到 5.4 的平方根,代码将不允许你这样做并且会抛出错误。因此,如果您还需要找到非整数的根,则应将 int 更改为 float。
  • 那么总是使用浮点数更好吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 2013-11-06
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多