2

我用python做了一个计算器

import time
print("Calculator 1.0")
print("made by AnAwesomeMiner")
print("Number 1 in calculation")
x = input()
print("Number 2")
y = input()
print("calculating")
time.sleep(3)
print("why is this not done yet")
time.sleep(3)
print("god this is taking forever")
time.sleep(3)
print("done")
answear = x + y
print(answear)

但是当我运行它并执行例如 123 和 321 时,我得到 123321 而不是 444,我做错了什么,顺便说一句,不要称我为新手,我是编程新手

4

8 回答 8

7

input()返回字符串而不是数字。这就是为什么执行 String 连接而不是添加的原因。

您需要使用int(x)andint(y)进行转换。

使用这个语句answear = int(x) + int(y)

于 2013-09-05T12:34:48.890 回答
6

input返回一个字符串,当您组合两个字符串时,结果就是您所看到的。

>>> x = '123'
>>> y = '321'
>>> x+y
'123321'

因此,您需要将它们转换为整数,如下所示:

answear = int(x) + int(y)
于 2013-09-05T12:36:06.150 回答
2

你可以使用这个:

y=int(input())
于 2013-09-05T12:40:52.460 回答
1

这是因为您将其声明为字符串。使用a = int(input()). 这会将其转换为整数。如果要插入十进制数,请使用float数据类型。

于 2021-08-25T09:07:59.653 回答
0

input() 接受并返回一个字符串对象,如果要对其执行算术运算,则需要将其类型转换为整数(或浮点数)。对两个字符串执行 + 操作只是将它们连接起来。

于 2013-09-05T12:37:43.893 回答
0

使用 int(input()) 代替 input()。这将告诉 Python 用户即将输入一个整数。

于 2017-08-04T09:36:39.053 回答
0

def main():

    def add(x,y):
        return x + y
    def sub(x,y):
        return x - y
    def mult(x,y):
        return x * y
    def div(x,y):
        return x / y
    def remainder(x,y):
        return x % y
    repeat=True
    while repeat:
        select=int(input("please select any operation:-\n 1.ADD\n2.SUBTRACT\n3.MULTIPLY\n4.DIVIDE\n5.REMAINDER\nselect here:-"))
        num1=int(input("Enter the first number"))
        num2=int(input("Enter the second number"))

        if select==1:
            print(num1,"+",num2,"=",add(num1,num2))
        elif select==2:
            print(num1,"-",num2,"=",sub(num1,num2))
        elif select==3:
            print(num1,"*",num2,"=",mult(num1,num2))
        elif select==4:
            print(num1,"/",num2,"=",div(num1,num2))
        elif select==5:
            print(num1,"%",num2,"=",remainder(num1,num2))
        else:
            print("invalid input")
        print("Do you want to calculate further?\n press y for continue.\n press any other key to terminate.")
        repeat="y" in str(input())
        if repeat=="y":
            print("Ooo yeh! you want to continue")
        else:
            print("Tnakyou")
main()
于 2020-05-06T03:42:08.923 回答
0

这是一个要解决的简单问题。当添加到整数或执行任何其他操作(包括输入和 int)时,您需要执行以下操作:

y = int(input())
x = int(input())
a = y+x

所以这放入你的代码看起来像这样:

import time
print("Calculator 1.0")
print("made by AnAwesomeMiner")
print("Number 1 in calculation")
x = int(input())
print("Number 2")
y = int(input())
print("calculating")
time.sleep(3)
print("why is this not done yet")
time.sleep(3)
print("god this is taking forever")
time.sleep(3)
print("done")
answear = x + y
print(answear)
于 2020-06-16T04:06:58.483 回答