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?".
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. –