0

I'm writing a function that prompts for input and then returns different results based on the input and then asks for input again. I've got it returning the correct values, but I'm not sure how to make it prompt for input again.

Here's the actual code of the function:

def interact():
 command = raw_input('Command:')
 command = command.split(' ')
 if command[0] == 'i':
 bike_name = command[1] + ' ' + command[2]
 return get_product_id(products, bike_name)
 if command [0] == 'n':
 return get_product_name(products, command[1])
 if command[0] == 'c':
 return compute_cost(products, part, command[1])
 if command[0] == 'p':
 return get_parts(products, command[1])

In each line with return in it, it is simply calling up a previously defined function. The products and part are dictionaries, defined previously.

I can only use the builtin functions.

Gino Mempin
30.5k31 gold badges125 silver badges174 bronze badges
asked Apr 5, 2011 at 3:09
3

5 Answers 5

4

I would do it with a while loop. Like This:

while True:
 com = raw_input('Command:').split()
 if len(com) == 0:
 break
 elif com[0] == 'i':
 bike_name = command[1] + ' ' + command[2]
 return get_product_id(products, bike_name)
answered Apr 5, 2011 at 3:20
Sign up to request clarification or add additional context in comments.

Comments

2

You've done most of the work, you just need this:

while True:
 print interact()
answered Apr 5, 2011 at 3:11

Comments

1

One way is to put it in a while loop, and then also check for an exit input to break out.

answered Apr 5, 2011 at 3:13

Comments

1

There is no need to take so much pain and write your own command line interpreter. Look at this: http://docs.python.org/2/library/cmd.html

answered Oct 27, 2013 at 6:56

Comments

0

Call the method inside an (end-less) loop:

while True:
 some_method()
answered Apr 5, 2011 at 3:13

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.