### Question :

What is the Python equivalent for a case/switch statement? [duplicate]

I’d like to know, is there a Python equivalent for the case statement such as the examples available on VB.net or C#?

##
Answer #1:

While the official docs are happy not to provide switch, I have seen a solution using dictionaries.

For example:

```
# define the function blocks
def zero():
print "You typed zero.n"
def sqr():
print "n is a perfect squaren"
def even():
print "n is an even numbern"
def prime():
print "n is a prime numbern"
# map the inputs to the function blocks
options = {0 : zero,
1 : sqr,
4 : sqr,
9 : sqr,
2 : even,
3 : prime,
5 : prime,
7 : prime,
}
```

Then the equivalent switch block is invoked:

```
options[num]()
```

This begins to fall apart if you heavily depend on fall through.

##
Answer #2:

The direct replacement is `if`

/`elif`

/`else`

.

However, in many cases there are better ways to do it in Python. See “Replacements for switch statement in Python?“.