2016-01-21 40 views
0

假設我有一個選項列表:命令行:選項顯示列表,讓用戶選擇

options = ["Option 1", "Option 2", "Option 3"] 

而且我想用戶選擇的命令行,例如上的選項是這樣的:

Please choose: 
1) Option 1 
2) Option 2 
3) Option 3 
Enter number: <user input> 

所以我要尋找以下的實現:

choice = let_user_pick(options) # returns integer 

一個人怎麼會去這個在Python?

+1

你好,歡迎來到StackOverflow。請花一些時間閱讀幫助頁面,尤其是名爲[「我可以詢問什麼主題?」(http://stackoverflow.com/help/on-topic)和[「我應該問什麼類型的問題避免問?「](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/q/156810/204922)。您可能還想了解[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

回答

2
def let_user_pick(options): 
    print("Please choose:") 
    for idx, element in enumerate(options): 
     print("{}) {}".format(idx+1,element)) 
    i = input("Enter number: ") 
    try: 
     if 0 < int(i) <= len(options): 
      return int(i) 
    except: 
     pass 
    return None 

您可能要以使用結果作爲你的選擇列表中的索引,或者直接返回選項,而不是返回int(i)-1。在用戶輸入正確的選擇之前,不要將None循環覆蓋整個事物,這可能也很好。