Python3.x上测量转换程序的帮助

Python3.x上测量转换程序的帮助,python,python-3.x,Python,Python 3.x,大家好,斯塔克沃夫的人们。我是Python新手,刚刚编写了第二个程序。它是有效的,但我希望它更好。基本上,我制作了一个转换距离测量值的程序。我想做的是只接受列表中的输入。然后只取数字。然后再从我的列表中获取输入。我找不到任何帮助,非常感谢。下面是代码的起始行。我将不包括其余的,因为它是一个额外的几十行做所有的数学。多谢各位 print("Meters | Feet | Yards | Miles | Kilometers | Inches | Centimeters") me

大家好,斯塔克沃夫的人们。我是Python新手,刚刚编写了第二个程序。它是有效的,但我希望它更好。基本上,我制作了一个转换距离测量值的程序。我想做的是只接受列表中的输入。然后只取数字。然后再从我的列表中获取输入。我找不到任何帮助,非常感谢。下面是代码的起始行。我将不包括其余的,因为它是一个额外的几十行做所有的数学。多谢各位

print("Meters | Feet | Yards | Miles | Kilometers | Inches | Centimeters")
measure1 = input("What would you like to measure? ")
measure1insensitive = (measure1.casefold())
num1 = input("How much? Enter digit: ")
num1_int = int(num1)
print("Meters | Feet | Yards | Miles | Kilometers | Inches | Centimeters")
measure2 = input("What do you want to convert this to? ")
measure2insensitive = (measure2.casefold())

在Python中,您可以使用中方便的函数

如果您有一个列表,在[“list”、“with”、“strings”]
中说
“my string”将返回
False
,因为“my string”与任何列表项都不匹配

类似地,在字符串中,“我的字符串”中的“我的”返回
True
,因为它是一个子字符串


如果你想偷懒,并将你当前的字符串和所有选项转换成一个列表(这将阻止有人在英寸中输入
“In”和“In”
真的
,这不是你想要的),你可以使用
“My | string |和| options”的输出。split(“|”).strip()
中断“|”字符并从字符串两端去除空白。

我们可以创建一个所有可接受度量类别的列表。然后,我们可以将所有提示放在一个无限循环中,当用户输入一个可接受的类别时,该循环就会中断。我们使用“in”操作符来检查这一点。然后,我们可以使用列表的.idex()函数来标识度量类别的索引,您可以使用这些索引执行逻辑

   measurments = ["meters","feet", "yards", "miles","kilometers","inches","centimeters"]
print("Meters | Feet | Yards | Miles | Kilometers | Inches | Centimeters")
while True:
    measure1 = input("What would you like to measure? ")
    measure1insensitive = (measure1.casefold())
    if measure1insensitive in measurments:
        break

m1 = measurments.index(measure1insensitive)
while True:
    num1 = input("How much? Enter digit: ")
    num1_f = float(num1)
    if (num1_f.is_integer()):
        break
num1_int = int(num1_f)
print("Meters | Feet | Yards | Miles | Kilometers | Inches | Centimeters")
while True:
    measure2 = input("What do you want to convert this to? ")
    measure2insensitive = (measure2.casefold())
    if measure2insensitive in measurments:
        break
m2 = measurments.index(measure2insensitive)
# Your logic
if m1==0: # From meters
   if m2==1: # To feets
        print("do the logic")

这回答了你的问题吗?我修改了答案,如果用户输入了错误的文本,它将再次显示提示。谢谢。这太棒了。还有一个问题,如果用户没有输入整数,我如何使num1输入强制为一个整数并具有相同的循环?再次感谢你!您可以按照相同的while循环模式提示用户输入整数。如果对您有效,请接受答案:)这样有助于建立我的声誉。完成。非常感谢。