Очевидно, что я не могу продемонстрировать материал popen
, поэтому я жестко закодировал входные данные в многострочную строку, которую я превращаю в список, используя метод .splitlines
. Этот код будет работать с данными любого размера, он не ограничен 10 элементами.
Он выполняет некоторую примитивную проверку пользовательского ввода, настоящая программа должна отображать более полезное сообщение, чем «Плохой выбор».
from __future__ import print_function
IG = '''\
tiger
lion
elephant
deer
pigeon
fox
hyena
leopard
cheatah
hippo
'''
data = IG.splitlines()
for num, name in enumerate(data, 1):
print('{0}: {1}'.format(num, name))
exitnum = num + 1
print('{0}: {1}'.format(exitnum, 'exit'))
while True:
choice = raw_input('Enter your choice [1-{0}] : '.format(exitnum))
try:
choice = int(choice)
if not 1 <= choice <= exitnum:
raise ValueError
except ValueError:
print('Bad choice')
continue
if choice == exitnum:
break
elif choice == 1:
print('Tigers are awesome')
else:
print('You chose {0}'.format(data[choice-1]))
print('Goodbye')
демо-выход
1: tiger
2: lion
3: elephant
4: deer
5: pigeon
6: fox
7: hyena
8: leopard
9: cheatah
10: hippo
11: exit
Enter your choice [1-11] : 3
You chose elephant
Enter your choice [1-11] : c
Bad choice
Enter your choice [1-11] : 1
Tigers are awesome
Enter your choice [1-11] : 12
Bad choice
Enter your choice [1-11] : 4
You chose deer
Enter your choice [1-11] : 11
Goodbye
Проверено на Python 2.6.6. Этот код также будет корректно работать на Python 3, вам просто нужно изменить raw_input
на input
для Python 3. Но , пожалуйста не используйте input
на Python 2.