0

我开始我的 python 脚本询问用户他们想做什么?

def askUser():
    choice = input("Do you want to: \n(1) Go to stack overflow \n(2) Import from phone \n(3) Import from camcorder \n(4) Import from camcorder?");
    print ("You entered: %s " % choice);

然后我想:

  1. 确认用户输入了有效的内容 - 1 - 4 的单个数字。
  2. 根据导入跳转到对应的函数。类似于 switch case 语句的东西。

关于如何以pythonic方式执行此操作的任何提示?

4

1 回答 1

4

首先,python中不需要分号:)(耶)。

使用字典。此外,要获得几乎肯定会在 1-4 之间的输入,请使用while循环继续请求输入,直到给出 1-4:

def askUser():
    while True:
        try:
            choice = int(input("Do you want to: \n(1) Go to stack overflow \n(2) Import from phone \n(3) Import from camcorder \n(4) Import from camcorder?"))
        except ValueError:
            print("Please input a number")
            continue
        if 0 < choice < 5:
            break
        else:
            print("That is not between 1 and 4! Try again:")
    print ("You entered: {} ".format(choice)) # Good to use format instead of string formatting with %
    mydict = {1:go_to_stackoverflow, 2:import_from_phone, 3:import_from_camcorder, 4:import_from_camcorder}
    mydict[choice]()

我们使用try/except此处的语句来显示输入是否不是数字。如果不是,我们使用continue从头开始的 while 循环。

.get()mydict从您提供的输入中获取值。当它返回一个函数时,我们把它放在()后面去调用这个函数。

于 2013-07-02T09:30:04.467 回答