Beginner question

Carlos Nepomuceno carlosnepomuceno at outlook.com
Tue Jun 4 02:46:03 EDT 2013


That doesn't even works because input() is the same as eval(raw_input()). So you'll get a NameError exception.

I think you know that. Perhaps you mean raw_input() instead of input().
In that case the answer is yes, it can be more 'efficient' because the if-then-else clause always breaks the while loop.
I think you are looking for is a switch statement, which Python don't have.

You can use the following structure to emulate a switch statement:

def function1():
    if raw_input() in option1:
        print('he tumbles over you')
    else:
        print('he stabs you')

def function2():
    if raw_input() in option2:
        print('you trip him up')
    else:
        print('he stabs you')

def default():
    print 'DEFAULT'

switch = {
    option1: function1,
    option2: function2
}
switch.get(randomizer, default)()

Note that switch is a dictionary and you can use it without creating a variable, for example:

{   option1: function1,
    option2: function2
}.get(randomizer, default)()


> Date: Mon, 3 Jun 2013 20:39:28 -0700
> Subject: Beginner question
> From: eschneider92 at comcast.net
> To: python-list at python.org
> 
> Is there a more efficient way of doing this? Any help is gratly appreciated.
> 
> 
> import random
> def partdeux():
>     print('''A man lunges at you with a knife!
> Do you DUCK or PARRY?''')
>     option1=('duck')
>     option2=('parry')
>     optionsindex=[option1, option2]
>     randomizer=random.choice(optionsindex)
>     while randomizer==option1:
>         if input() in option1:
>             print('he tumbles over you')
>             break
>         else:
>             print('he stabs you')
>             break
>     while randomizer==option2:
>         if input() in option2:
>             print('you trip him up')
>             break
>         else:
>             print('he stabs you')
>             break
> partdeux()
> -- 
> http://mail.python.org/mailman/listinfo/python-list
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130604/7707afba/attachment.html>


More information about the Python-list mailing list