I need newbie help

john fabiani jfabiani at yolo.com
Fri May 14 14:04:13 EDT 2004


Sean Berry wrote:
> You have to read the whole page to understand why.
> 
> The title is: Python style switches.
> Python does not have a swith statement like many other languages.
> A switch statement could look like this:
> 
> switch (a)
>     case 1:    do something
>     case 2:    do something else
>     case 3:    do something else
>     default:    do something else
> 
> It evaluates a and checks to see if there is a matching case.  If there
> is, it executes the code for that case.  So if a==1, it would "do
> something."
> 
> Since Python doesn't have a switch statement, you can make your own.
> In Python you could do something like this though:
> 
> selector={
>    x<0    : 'return None',
>    0<=x<1 : 'return 1',
>    1<=x<2 : 'return 2',
>    2<=x<3 : 'return 3',
>    3<=x   : 'return None'
>    }[a]
> 
> if a == 1, it would "return 1".
> 
> 
> 
> 
> 
> 
> 
> 
> "john fabiani" <jfabiani at yolo.com> wrote in message
> news:F0Yoc.67040$Ub.57241 at newssvr25.news.prodigy.com...
> 
>>Sean Berry wrote:
>>
>>
>>>"Joseph Davidson" <jhd at radix.net> wrote in message
>>>news:10a83t8qku40d44 at corp.supernews.com...
>>>
>>>
>>>>I am an experienced perl programmer learning python ( no commente please
>>>>).
>>>>
>>>>In looking at a sample script at
>>>>http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/269708
>>>>
>>>>I found the following code snippet.
>>>>--------------------------------------------------
>>>>location = 'myHome'
>>>>fileLocation = {'myHome'   :path1,
>>>>               'myOffice' :path2,
>>>>               'somewhere':path3}[location]
>>>>
>>>>-----------------------------------------------------
>>>>
>>>
>>>
>>>fileLocation takes the 'value' of the 'key' "location"
>>>equilvalent to:
>>>
>>>location = 'myHome'
>>>files = {'myHome'   :path1, 'myOffice' :path2, 'somewhere':path3}
>>>fileLocation = files[location]
>>>
>>>
>>>
>>>>It seems that this is setting up fileLocation  as a dictionary, but what
>>>>is the "[location]" doing?
>>>>
>>>>Joe Davidson
>>>>
>>>>--
>>>
>>>
>>>
>>I'm also a newbie.  Did the programmer that wrote the code not use your
>>way (3 statements) because his statement was faster or because it better
>>python?
>>
>>John
> 
> 
> 
Thanks it's a replacement for a switch statement. This is cool.  Is 
"[a]" a list?  If it's a list does it allow complex statement (not that 
I can think of one at the moment)?
John



More information about the Python-list mailing list