Извлечение опций raw_input из списка - PullRequest
2 голосов
/ 04 сентября 2011

Привет, я только начинаю изучать Python, я использую книгу «Изучай Python трудный путь», и одно из упражнений - создать простую игру.Я хотел предоставить пользователю опции из списка.

Например, я бы составил список животных, который включал бы 3 животных, тигра льва и рыбу.Можно предложить выбранные элементы из списка.Я почти уверен, что это так, но я просто не знаю как.

Я думал что-то вроде этого (очевидно, неправильно, но я думаю, что это помогает понять, что я имею в виду)

animals = ['Lion', 'Tiger', 'Fish']

print "which of these animals is your favourite?"
favourite = raw_input(animals[0] or animals[2])
if favourite = "Lion':
    print "Nice choice"
else:
    print "Bad choice"

Опять же, я не могу не подчеркнуть, что знаю, что вышесказанное действительно дерьмо, но по сути я хочу предложить определенные элементы списка в качестве опции для raw_input.В приведенном выше случае 0 и 2.

Заранее благодарим за помощь.

Ответы [ 2 ]

3 голосов
/ 04 сентября 2011
favourite = raw_input(' or '.join(animals))

Это возьмет все строки из списка animals и соединит их вместе с or между ними, так что вы получите

Lion or Tiger or Fish

, если хотите добавитьвопросительный знак и пробел до конца, вы можете сделать

favourite = raw_input(' or '.join(animals) + '? ')

Кроме того, в строке

if favourite = "Lion':

Ваши кавычки не совпадают - убедитесь, что вы используете либо двойной, либоодинарные кавычки, а не по одному.Вам также нужно использовать == для сравнения двух вещей;= предназначен для присвоения значения, а не для сравнения.

Я бы, вероятно, сделал бы это следующим образом:

animal_string = ' or '.join(animals)
favourite = raw_input("Which of these animals is your favourite:\n{}? ".format(animal_string))

, который сначала создает строку животного, а затем форматирует выбор в вопросе по(из-за \n) и ставит ? после.

1 голос
/ 04 сентября 2011

Как насчет этого?

favourite = raw_input("which of these animals is your favourite? "+",".join([str(a)+":"+b for a,b in enumerate(animals)])+">")
fav = animals[int(favourite)]
print fav+" is a nice choice indeed!. The big bear will kill you anyway. Good bye."
...