Python, постоянно запрашивающий ввод пользователя - PullRequest
1 голос
/ 05 апреля 2011

Это домашняя работа, поэтому я просто следую некоторым указаниям.

Я пишу функцию, которая запрашивает ввод, а затем возвращает разные результаты на основе ввода, а затем снова запрашивает ввод.вернул правильные значения, но не уверен, как заставить его снова запросить ввод, вот фактический код функции:

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])

В каждой строке с возвратом в ней просто вызываетсяранее определенные функции, продукты и части являются словарями, определенными ранее.

Я могу использовать только встроенные функции

Любая помощь очень ценится!

Ответы [ 5 ]

4 голосов
/ 05 апреля 2011

Вы сделали большую часть работы, вам просто нужно это:

while True:
    print interact()
2 голосов
/ 05 апреля 2011

Я бы сделал это с помощью цикла while.Как это:

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)
1 голос
/ 27 октября 2013

Не нужно так много мучиться и писать свой собственный интерпретатор командной строки. Посмотрите на это: http://docs.python.org/2/library/cmd.html

1 голос
/ 05 апреля 2011

Один из способов - поместить его в цикл while, а затем также проверить, не сработали ли входы выхода.

0 голосов
/ 05 апреля 2011

Вызвать метод внутри цикла (без конца):

while True:
   some_method()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...