[英]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()
从用户那里得到一个str
, int()
把它转换成一个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.