【问题标题】:Python Calculator, No AnswerPython 计算器,没有答案
【发布时间】:2015-03-16 13:22:47
【问题描述】:

我对 Python 非常感兴趣,因此决定学习它。 我介绍了很多东西,但是当我尝试制作一个只需要输入数字和操作类型的计算器时,我被卡住了

例如-10 ^ 2

发生的事情是我没有得到任何答案。我使用命令提示符 输出。

我的代码如下所示:

 # Calculator



print " "
print "  Calculator  "
print " "

num = int(raw_input(">> ")).split()

num1 = int(num[0])

op = num[1]

num2 = int(num[2])

if (op=='+'):

    print ">>>", num1 + num2
elif (op=='-'):

    print ">>>", num1 - num2
elif (op=='*'):

    print ">>>", num1 * num2
elif (op=='/'):

    print ">>>", num1 / num2
elif (op=='^'):

    print ">>>", pow(num1,num2)
elif (op=='%'):

    print ">>>", num1 % num2

我使用 Python 2.7。

请帮帮我。

【问题讨论】:

  • 你的输入是什么样的?

标签: python class python-2.7 if-statement


【解决方案1】:

你必须删除int演员,即

num = raw_input(">> ").split() # remove the int cast

然后输出将是:

>> 10 ^ 2
>>> 100

【讨论】:

  • 我认为在不指定 sep 参数的情况下使用 split() 更接近问题所要查找的内容。请参阅str.split()[docs.python.org/2/library/stdtypes.html#str.split] 上的文档。它将“连续空格 [...] 的运行视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串”
  • @AndréLaszlo 谢谢,:)。 IYKWIM
  • @HelloWorld 一切顺利!祝你好运:)
【解决方案2】:

改变

num = int(raw_input(">> ")).split()

num = raw_input(">> ").split()

如果您输入2 ^ 10,例如,num 现在将是数组['2', '^', '10'],您的其余代码将起作用。

如果您在 raw_input 上执行 int(),它将无法正常工作,因为您正在尝试将类似 "2 ^ 10" 的字符串转换为 int。

【讨论】:

    【解决方案3】:
    num = int(raw_input(">> ")).split()
    

    应该改为

    num = (raw_input(">> ")).split()
    

    至少就我所知,你不能拆分一个数字

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 2015-04-14
      • 2014-06-06
      • 1970-01-01
      • 2011-12-21
      相关资源
      最近更新 更多