python - 计算器代码问题: 10 + 5 results in 105

标签 python python-3.x

我是这个论坛的新手,也是继 C++ 之后才接触 Python 的新手。

我的 python 计算器有问题。当我运行它并使用 + 进行操作时,例如:10 + 5 给出 105,但我想得到 15.

其他操作甚至不起作用(我收到错误)。

print("\nCalculator In Python")
print("\nChose The Operation :")
print("\na)+\n\nb)-\n\nc)/\n\nd)*")
answer = input("\n\n: ")
result = int

if answer == 'a':
    a = input("\n\nFirst Number : ")
    b = input("\n\nSecond Number : ")
    print(a, "+", b, "=", a+b)
elif answer == 'b':
    a = input("\n\nFirst Number : ")
    b = input("\n\nSecond Number : ")
    print(a, "-", b, "=", a-b)
elif answer == 'c':
    a = input("\n\nFirst Number : ")
    b = input("\n\nSecond Number : ")
    print(a, "/", b, "=", a/b)
elif answer == 'd':
    a = input("\n\nFirst Number : ")
    b = input("\n\nSecond Number : ")
    print(a, "*", b, "=", a*a)

最佳答案

a+b 实际上是'10'+'5',即'105'。发生这种情况是因为 input() 给出一个字符串。所以你需要先将其转换为数字。

float(input())

此外,为了确保用户仅提供有效的数字,您可以使用:

while True:
    a = input('\nGive a:')

    try:
        a = float(a)
        break
    except ValueError:
        print('Try again.')

关于python - 计算器代码问题: 10 + 5 results in 105,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182420/

相关文章:

谁能把这个翻译成Python?

Python3.3 - 致命的 Python 错误 : Py_Initialize: Unable to get the locale encoding

python - 如何创建包含 27.000 条线的抖动图?

python - Gurobi:预求解后保存模型以供重复使用

python - 是否有必要在 python 中显式调用 super().__init__() ?

python - 使用 csv.DictWriter 输出内存中的 gzip 压缩 csv 文件?

python - 递归比迭代更糟糕吗?

python - pandas 如何使用 groupby 在标签中按日期对列进行分组?

javascript - 重访 Python 私有(private)实例数据

python - IPython 自动滚动?