Python:用户选择

2024-04-27 04:37:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个非常基本的问题,但我对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语句(仅在距离上就有六个转换)。我不希望在float的情况下为每个分支添加if语句。你知道吗


Tags: ofto用户距离convertinputrawif
1条回答
网友
1楼 · 发布于 2024-04-27 04:37:15

在没有一堆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)

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

相关问题 更多 >