Python:用户选择int或float

时间:2015-11-17 00:28:31

标签: python python-2.7 floating-point int user-input

这可能是一个非常基本的问题,但我是Python的新手。我正在建立一个简单的距离转换工具,我想让用户根据他们的测量结果选择输入浮点数或整数。除了10亿if语句(每个测量单位一个,如英寸到厘米或英尺到米),还有一个不错的方法吗?

编辑:这是我的代码片段

#if imperial, offer choices of inch, foot, or mile
if disType == "i":
    print """
    What unit of measurement do you want to convert?
    inches to centimeters: i
    feet to meters: f
    miles to kilometers: m
    """
    unitType = raw_input(prompt)
    #if unit is inches, prompt user for number of
    #inches and convert to centimeters
    if unitType == "i":
        print "Please input distance in inches"
        inches = int(raw_input(prompt))
        centimeters = inches * 2.54
        print "That is %i centimeters" % centimeters

如果用户输入小数,我希望能够对其进行说明。但我对每次转换都有其中一个if语句(仅在距离上有六次转换)。我宁愿不为每一个在浮动情况下分支的if语句添加一个if语句。

1 个答案:

答案 0 :(得分:2)

如果没有一堆if语句,你似乎在如何实现单位转换方面遇到了麻烦,对吗?

如果我是你,我会这样做:

conv_func = {
    'inch': func_for_inch_conv,
    'cm': func_for_cm_conv,
    ...
}
data = raw_input() # prompt the user to enter data in the form '1 inch'
mag, unit = data.split(' ')
result = conv_func[unit](mag)

我不知道这是否是解决问题的好办法,但这就是我的想法。