Как реализовать задачу более кратким способом?

введите сюда описание изображения

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]}')
→ Ссылка