简体   繁体   中英

Setting function to call raw_input in python

How do I make this work? I'm trying to set a global function so that I can simply call it later for raw input rather than calling the raw input where I need it.

I think I have the essence to an extent of what I need but I'm stumped as to how to format this, or if it's even possible.

Thank you in advance.

   def choice_1():
        choice_1 == raw_input("> ")
    def choice_1a():    
        choice_1a = raw_input("> ") 
    def choice_1b():    
        choice_1b = raw_input("> ")

edit: I don't think I was clear enough in the purpose of my question. Here's an update of the code I'm working on, perhaps this will clear things up.

print "You've arrived at your desk"


def choice_1(one):
    choice_1a = raw_input("< ")
def choice_1a():    
    choice_1a = raw_input("> ") 
def choice_1b():    
    choice_1b = raw_input("> ")

#Choice_1
print "What do you want to do?"
print "We can \n1. Read\n2. Draw\n3. Work on homework"
print choice_1
#choice 1 branch 1
if choice_1 == "1":
    print "What book should we read today?"
    print "We can read\n1. Tom Sawyer\n2. Quantum Physics \n3. Ray Bradbury"
    print choice_1a
    if choice_1a == "1":
        print "Great choice!"
    if choice_1a == "2":
        print "Heavy stuff there."
    if choice_1a == "3":
        print "Entertaining author, that one there!"
    else:
        print "Let's go to the library, maybe they'll have that one."
#choice 1 branch 2
if choice_1 == "2":
    print "What would you like to draw?"
    print "We can draw a\n1. Tiger\n2. Fish\n3. Bear "
    print choice_1b
    if choice_1b == "1":
        print "You drew a Tiger!"
    if choice_1b == "2":
        print "You drew a Fish!"
    if choice_1b == "3":
        print "You drew a Bear!"
    else:
        print "Time for some improvisation."

#choice 1 branch 3
if choice_1 == "3":
    print ""

does this clear some confusion?

This will do what you want. As @SethMMorton had noted, you had missed out on a return

def choice():
    return raw_input('> ‘)

By the way, this is not a nice thing to do, because, to someone reading your code, it will not be immediately clear what choice is doing.

I did this:

print 'Your name is :' + choice()

And it worked as expected.

EDIT : You should make your if statements thus:

if choice() == "1" :

 def multiplier(x, y):
     ans = x * y
     print ans

This would be a use for a function and when ready to use it you would call it like this

 multiplier(5, 10)
      50

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM