Как реализовать задачу более кратким способом?
from random import shuffle, randint
predict = [...] # тут список из 30 придуманных
# предсказаний плюс 6 "ничего не изменится..."
# из условия задачи
shuffle(predict)
while input('Хотите узнать, что Вас ждет в наступающем году - Да / Нет :') == 'Да' :
print(predict[randint(1,36)])
Можно ли как-то заменить shuffle и while на что-то другое, чтобы задача решалась еще короче?
Ответы (1 шт):
Автор решения: AlTheOne
→ Ссылка
Так как у Вас неизменяема последовательность, стоит использовать кортеж.
Кортеж заполните своими данными и указать номер прямо в строке:
import random
predict = ('1. a', '2. b', '3. c')
while input('Хотите узнать, что Вас ждет в наступающем году - Да / Нет :') == 'Да':
print(random.choice(predict))
[UPDATE]
Если номер нельзя хранить в строке, то запись выйдет длиннее, но не нужно будет заботиться о номерах:
import random
predict = {idx: i for idx, i in enumerate(('a', 'b', 'c'), 1)}
keys = tuple(predict.keys())
while input('Хотите узнать, что Вас ждет в наступающем году - Да / Нет :') == 'Да':
key = random.choice(keys)
print(f'{key}. {predict[key]}')
