def add(a, b):
return a + b
print("choose 1 to add and 2 to subtract")
select = input("enter choice 1/2")
a = float(input("enter 1st nunber: "))
b = float(input("enter 2nd number: "))
if select == 1:
print(a, "+", b, "=", add(a, b))
我不知道它为什么不想
4条答案
按热度按时间qcuzuvrc1#
您需要将
select
转换为int
wbgh16ku2#
You need to convert the
select
variable to integer. By default, the input is taken as string value. You can also use f-string (see more at Formatted String Literals documentation) for printing values from variables in the print statement which gives you much more flexibility to format the string:Output:
jhdbpxl93#
input
返回一个字符串,但在if select == 1
行中,您将其与int
进行比较。对此有几种解决方案,但我将采用的解决方案是只使用字符串,即if select == "1"
。1
和2
是任意值,因此实际上没有必要将它们转换为数字,您可以使用a
和b
轻松地实现相同的目标。你可以做的另一件有用的事情是验证用户输入。
这将继续要求用户选择一个选项,直到他们输入一个有效的选项,并且还具有额外的好处,帮助您捕获代码中的错误,如
int
与str
问题。a0x5cqrl4#
正如其他人提到的,由于input返回一个
str
,它应该与相同类型的对象进行比较。只需将第10行的1
改为str(1)
就可以解决这个问题。