2
A
回答
13
你可能會做這樣的事情:
def action1():
pass # put a function here
def action2():
pass # blah blah
def action3():
pass # and so on
def no_such_action():
pass # print a message indicating there's no such action
def main():
actions = {"foo": action1, "bar": action2, "baz": action3}
while True:
print_menu()
selection = raw_input("Your selection: ")
if "quit" == selection:
return
toDo = actions.get(selection, no_such_action)
toDo()
if __name__ == "__main__":
main()
這把你所有的將可能的行爲的功能轉換成字典,關鍵是你將輸入什麼來運行該功能。然後它從列表中檢索動作輸入動作,除非輸入動作不存在,在這種情況下,它將檢索no_such_action。
後,您有如何工作的一個基本的瞭解,如果你正在考慮做一個嚴肅的商業命令行式的應用程序,我會看着cmd
framework的命令行應用程序。
2
您可以使用if ... elif。如果你必須選擇一個數字,它會是這樣:
n = chosenOption()
if(n == 0):
doSomething()
elif(n == 1):
doAnyOtherThing()
else:
doDefaultThing()
+0
+1:Python「switch」拼寫爲「if」; 「case」拼寫爲「elif」。 – 2008-11-29 20:06:38
2
全都從「一個Python簡介」一書一看這topic。 Switch語句被一個if..elif..elif序列替代。
5
一般情況下,如果elif會很好,但如果您有很多情況,請考慮使用字典。
actions = {1: doSomething, 2: doSomethingElse}
actions.get(n, doDefaultThing)()
0
你的第一個問題,我同意阿里A.
你的第二個問題:
進口SYS
sys.exit(1)
0
我來到這裏尋找同樣的事情,最終寫我自己: https://github.com/gerrywastaken/menu.py
你叫它像這樣:
import menu
message = "Your question goes here"
options = {
'f': ['[F]irst Option Name', 'First value'],
's': ['[S]econd Option Name', 'Second value'],
't': ['[T]hird Option Name', 'Third value']
}
selection = menu.getSelection(message, options)
它呈現給用戶一個菜單,他們可以選擇他們希望通過括號中的字符選項。如果他們輸入「s」作爲他們的選項,則選擇將被賦予「第二值」的值。我本可以讓它更有趣,但我想盡量簡化,雖然拉來的請求是非常受歡迎的。
相關問題
- 1. 開關的情況下沒有在JavaScript
- 2. 開關的情況下,案件沒有被發現,但類似的其他情況,給予建議
- 3. 在沒有創建實現的情況下實現接口(動態代理?)
- 4. 有關創建上下文菜單的設計建議
- 5. 在沒有win32com.client的情況下自動執行Outlook的建議
- 6. 在沒有協議處理程序的情況下實現ClassLoader.getResource(String)
- 7. 如何在沒有故事板的情況下快速創建滑動導航菜單(畫布外菜單)?
- 8. 關於在沒有MVC的情況下使用SubSonic 3.0.0.3的建議/意見?
- 9. 開關情況下的多種情況?
- 10. 的bash腳本的情況下開關
- 11. 只有在打開的情況下才能切換sidenav菜單
- 12. 在沒有用戶點擊的情況下顯示QSystemTrayIcon的上下文菜單
- 13. Meld Nautilus上下文菜單的外殼腳本
- 14. 在沒有項目的情況下長按ListView,調用上下文菜單
- 15. Rails的情況下,/開關
- 16. 開關的情況下
- 17. 如何在沒有jQuery的情況下在HTML中創建手風琴菜單
- 18. 在不檢查現有數據的情況下創建外鍵
- 19. 開關執行選項菜單兩種情況下
- 20. Nancy:如何在沒有上下文的情況下呈現Html
- 21. 在沒有索引表的情況下跟蹤開/關
- 22. 開關的情況下沒有在IE8工作
- 23. 如何在沒有實現的情況下在android中實現微調器?
- 24. 在沒有$ _SESSIONs的情況下實現Facebook PHP SDK(3.1.1)
- 25. 在沒有va_list的情況下實現printf
- 26. 如何在沒有actionview的情況下實現form_tag helpers?
- 27. 在沒有第三方框架的情況下實現DI
- 28. 我可以在沒有MembershipProvider的情況下實現RoleProvider嗎?
- 29. 在沒有模型的情況下實現MVC架構
- 30. 如何在沒有Async CTP的情況下實現等待
爲什麼如果我將字典更改爲「foo」,這會中斷:action1(),? – 2013-01-15 04:15:07