Использование случайного выбора из словаря для появления изображения?Python

Программы на Python
Ответить
Anonymous
 Использование случайного выбора из словаря для появления изображения?

Сообщение Anonymous »

Небольшое предисловие:
Я использую брелок. Я пытаюсь сделать программу чтения Таро для класса. Используя вложенный словарь, у меня есть название каждой карты, лицевая сторона каждой карты, а затем короткое (3–4 слова) чтение, которое затем выводится в качестве шаблона для пользователя.
Пример вложенного словаря:

Код: Выделить всё

card_names = {
"The Fool" : {"Up": "new beginnings, pleasure, & opportunity" , "Down" : "indecision, hesitation, & bad choices" },
"The Magician" : {"Up" : "creativity, self-confidence, & skill" , "Down" : "delay, insecurity, & lack of self-confidence" }
Затем я использую функцию random.choice для создания карты и ее лицевой стороны, вот так:

Код: Выделить всё

  card = random.choice(list(cards.card_names))
facing = random.choice(list(cards.card_names[card]))
Затем он выводит показания на основе ответов пользователей и случайно сгенерированной карты:

Код: Выделить всё

print(__main__.answer_list[0] + ", your past was represented by " + random.choice(list(cards.card_names)) + ", which is facing " + random.choice(list(cards.card_names[card])) + "." " This tells me that your past relationships brought " + (cards.card_names[card][facing]) + " into your life.")

на выходе это выглядит примерно так:
"

Код: Выделить всё

Em, your past was represented by The Chariot, which is facing Up. This tells me that your past relationships brought misery, greedy, & money into your life.
Теперь, когда у меня есть программа, которая действительно работает, я хочу сделать так, чтобы выбранные карты random.choice действительно отображались пользователю, используя такие файлы, как «tarot-fool.jpeg».
Я сделал второй словарь, который выглядел так:

Код: Выделить всё

card_images = {"The Fool": "tarot-fool.jpeg", "The Magician": "tarot-magician.jpeg"}

Я надеялся, что программа сможет взять сгенерированную случайным образом карту из словаря card_names, проанализировать второй словарь на наличие совпадений, а затем, как только она найдет карту с совпадающими ключами, она выведет значение второго словаря card_images, а затем использует функцию screen.bgpic(), чтобы показать пользователям карту, пока они читают результаты чтения Таро.
Я попробовал что-то похожее на это:

Код: Выделить всё

namesset = set(card_names)
imageset = set(card_images)

for name in namesset.intersection(card_images):
print name, card_images[name]

Я тоже пробовал

Код: Выделить всё

card = random.choice(list(cards.card_names))
facing = random.choice(list(cards.card_names[card]))
key = card
key2 = cardimages.key()
value = cardimages.value()

if key in key2:
print value
просто чтобы посмотреть, смогу ли я заставить программу изолировать правильное значение от card_images, прежде чем я начну пытаться отобразить их на экране, но я не могу заставить программу изолировать случайно выбранную карту, запомнить ее, а затем проанализировать второй словарь только на предмет этого значения. Приведенный выше код работает, но выводит каждое имя каждого файла .jpeg.
Пожалуйста, помогите! Честно говоря, я считаю, что это слишком сложно для использования Trinket, особенно с компонентом изображений. У меня есть некоторый опыт программирования вне этого, но это для классного проекта, который мы ДОЛЖНЫ сдать с безделушкой, поэтому, если кто-то может либо помочь мне, либо просто сказать мне, если это недостижимо с помощью безделушки, чтобы я мог немного изменить направление, я был бы очень признателен.
см. выше, что я пробовал

Подробнее здесь: https://stackoverflow.com/questions/746 ... age-appear
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»