当我在其中输入值时,为什么程序会退出?

时间:2020-06-11 09:21:12

标签: python

这是程序。该程序将千克数转换为磅,反之亦然。

pref = input("Hello, This is a program to convert 1. Mass, 2. Length, 3. Speed, 4. Temperature, 5. Currency and 6. Date \n Enter your option in NUMBER")

if pref == 1. or 1:
     pref1 = input("1. Kg to lb \n 2. Lb to kgs")

if pref1 == 1:
    Kgs = input("Enter weight in Kg")
    Lbs = float(Kgs)*2.20462
    print(str(Lbs)) 
elif pref1 == 2:
    Lbs = input("Enter weight in lbs")
    Kgs = float(Lbs)/2.20462
    print(str(Kgs))
else:
    exit()

但是,当我第二次在程序中输入一个值时,即当程序要求用户输入他们要从磅转换为千克还是从磅转换为用户的偏好时,它就会退出。\

有人可以指出我的错误吗?

2 个答案:

答案 0 :(得分:1)

问题是从pref收到input时,它是字符串而不是整数。

将所有if语句更改为:

if int(pref1) == ...

那可以解决问题。

答案 1 :(得分:1)

输入后,输入的类型将为str。 由于您仅与int作比较,因此您将最终进入else子句。 尝试将input的结果转换为int

例如

pref = int(input("Hello, This is a program to convert 1. Mass, 2. Length, 3. Speed, 4. Temperature, 5. Currency and 6. Date \n Enter your option in NUMBER"))

if (pref == 1.) or (pref == 1):
     pref1 = int(input("1. Kg to lb \n 2. Lb to kgs"))
....

正如评论中指出的那样,您也应该检查if (pref == 1)而不是if pref == 1. or 1,因为无论如何pref都会转换为整数