[Tutor] Equivalent 'case' Statement
Kinuthia Muchane
muchanek at gmail.com
Fri May 23 13:59:45 CEST 2008
Hi,
I messed in earlier message, my apologies.
> Message: 1
> Date: Fri, 23 May 2008 00:25:23 +0100
> From: "Alan Gauld" <alan.gauld at btinternet.com>
> Subject: Re: [Tutor] Equivalent 'case' statement
> To: tutor at python.org
> Message-ID: <g14vd9$97c$1 at ger.gmane.org>
> Content-Type: text/plain; format=flowed; charset="iso-8859-1";
> reply-type=original
>
>
> "Dinesh B Vadhia" <dineshbvadhia at hotmail.com> wrote
>
>> Is there an equivalent to the C/C++ 'case' (or 'switch') statement
>> in Python?
>
> No, just if/elif
>
> However you can often achieve similar results with a dictionary:
>
> def func1(v): return v
>
> def func2(v): return v*2
>
>
> switch = { 'val1': func1, # use a function for each value
> 'val2': func2,
> 'val3': lambda v: "this is three!" } # or use
> lambda if preferred
>
> val = raw_input("Value? (val1,val2,val3)")
>
This:
> print switch.[val](val)
should be: print switch[val](val)
>
>
> ### which is equivalent to:
>
> if val == 'val1': print func1(val)
> elif val == 'val2': print func2(val)
> elif val == 'val3': print "this is three"
>
> HTH,
>
More information about the Tutor
mailing list