繁体   English   中英

构建了一个计算器,但不知道为什么我的答案没有回复给我?

[英]Built a Calculator but don’t know why I won’t get my answer returned to me?

操作

添加

def add(x, y):
    return x + y

减法

def subtract(x, y):
    return x - y

乘法

def multiply(x, y):
    return x * y

分配

def divide(x, y):
    return x /y

主要的

print("Choose your math path!")
print("1.Add  +")
print("2.Subtract - ")
print("3.Multiply  *")
print("4.Divison /") 

calculate = int(input("Addition through division - 1/ 2/ 3/ 4:"))

num = int(input("Enter first number here please:"))

num2 = int(input("Enter second number here please:"))

我认为如果计算 == 1 不会打印并添加我的数字吗?

if calculate == “1”:
    print(num, num2,add(num, num2))
elif calculate == "2":
    print(num, num2, subtract(num, num2))
elif calculate == "3":
    print(num, num2, multiply(num, num2))
elif calculate == "4":
    print(num, num2, divide(num, num2))
else:
    print("Wrong choice give it another go!")

calculate是一个int ,但你正在检查它是否等于一个str int (整数的缩写)是一个数字,而str (字符串的缩写)是一段带有引号的文本。

input()函数返回一个str
这意味着,如果您使用x = input()并且用户输入1 ,则x将被设置为'1' (a str ),而不是1 ,(一个int )。

>>> x = input('Enter a number: ')
Enter a number: 1
>>> x
'1'
>>> type(x)
<class 'str'>

int()函数返回一个int
如果将str传递给int()函数,它将尝试将其转换为int并返回它。

>>> x = '1'
>>> x
'1'
>>> type(x)
<class 'str'>
>>> int(x)
1
>>> type(int(x))
<class 'int'>

如果你想从用户那里得到一个int ,你可以使用int(input())
input()从用户那里得到一个strint()把它转换成一个int

>>> x = int(input('Enter a number: ')
Enter a number: 5
>>> x
5

str不能等于int因为它们是两种完全不同的类型。 对于计算机, 1'1' ,就像12'abc'

通过使用int(input) ,您将calculate设置为等于int

calculate = int(input("Addition through division - 1/ 2/ 3/ 4:"))

但是,在检查calculate等于什么时,您将其与str进行比较。 请记住: str是一段带有引号的文本。

这将检查calculate是否是一段文本(一个str ),表示'1'

if calculate == '1':

这将检查calculate是否是一个数字(一个int ),即1

if calculate == 1:

因为您将calculate设置为int (通过使用int(input()) ),所以只有第二种形式才能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM