Mi piacerebbe sapere, esiste un equivalente Python per l'istruzione case come gli esempi disponibili su VB.net o C#?Qual è l'equivalente Python per un'istruzione case/switch?
241
A
risposta
355
Mentre il official docs è felice di non fornire l'interruttore, ho visto uno solution using dictionaries.
Ad esempio:
# define the function blocks
def zero():
print "You typed zero.\n"
def sqr():
print "n is a perfect square\n"
def even():
print "n is an even number\n"
def prime():
print "n is a prime number\n"
# map the inputs to the function blocks
options = {0 : zero,
1 : sqr,
4 : sqr,
9 : sqr,
2 : even,
3 : prime,
5 : prime,
7 : prime,
}
Poi il blocco di commutazione equivalente viene richiamato:
options[num]()
Questo comincia a cadere a pezzi se si dipendono fortemente cadere.
81
La sostituzione diretta è if
/elif
/else
.
Tuttavia, in molti casi ci sono modi migliori per farlo in Python. Vedi "Replacements for switch statement in Python?".
Problemi correlati
- 1. Qual è il python per Java BigDecimal?
- 2. Qual è la ragione per avere '//' in Python?
- 3. Qual è la struttura dati sottostante per gli elenchi Python?
- 4. Qual è la pratica comune per enum in Python?
- 5. Qual è il debuglevel massimo per un httplib Python
- 6. Qual è l'equivalente di Groovy per dir() di Python?
- 7. Qual è il modo migliore per attivare le stampe Python?
- 8. Qual è l'implementazione delle funzioni generiche meglio gestite per Python?
- 9. qual è il codec per video mp4 in python OpenCV
- 10. Python - Qual è più veloce per analizzare Json o XML?
- 11. Qual è il metodo corretto per stampare le eccezioni Python?
- 12. Qual è l'analogico per .Net InvalidOperationException in Python?
- 13. Qual è il miglior editor python?
- 14. Qual è l'equivalente Python di R's NA?
- 15. Qual è il principio EAFP in Python?
- 16. Qual è il significato di [...] in python?
- 17. Python: Qual è l'equivalente di PHP "=="
- 18. Qual è l'equivalente di "gem" in python?
- 19. Qual è il significato di "_" in python?
- 20. Qual è l'inverso di date.toordinal() in python?
- 21. Qual è la differenza tra Python attivo e Python?
- 22. Qual è l'operatore & = per Java
- 23. Qual è rc sta per
- 24. Qual è l'attributo ThemeInfo per?
- 25. Qual è il keyCode per "$"?
- 26. Qual è l'equivalente Python del pattern Perl per tracciare se qualcosa è già stato visto?
- 27. Qual è il modo più semplice per creare un'estensione C opzionale per un pacchetto python?
- 28. Qual è il modo più elegante per scrivere questo per loop in Python?
- 29. Qual è il modo migliore per dividere file di grandi dimensioni in Python per il multiprocessing?
- 30. Qual è un buon modo per fornire ulteriori decorazioni/metadati per i parametri della funzione Python?
La seconda domanda non è un follow-up, e anche i follow-up devono essere postati come domande separate. Inoltre, è fuori tema e dovrebbe andare su programmers.stackexchange.com. E la tua prima domanda è un duplicato. –