Как получить разные случайные вложенные словари?

#python #python-3.x #list

Вопрос:

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

 import game_data
import random
import art

names = random.choice(game_data.data)
names2 = random.choice(game_data.data)
correct_score = int()

def game(name,names2,correct_score):
    #print(art.logo)
    follower_count = names['follower_count']
    print(f"Compare A: {names['name']}, a {names['description']}, from {names['country']}.")
    #print(art.vs)
    follower_count2 = names2['follower_count']
    print(f"Against B: {names2['name']}, a {names2['description']}, from {names2['country']}.")
    answer = input("Who has more followers 'A' or 'B': ").lower()
    if answer == 'a' and follower_count > follower_count2:
        print("Correct")
        correct_score  = 1
        print(correct_score)
        game(name=names,names2=names2,correct_score=correct_score)
    elif answer == 'b' and follower_count2 > follower_count:
        print("Correct")
        correct_score  = 1
        print(correct_score)
        game(name=names,names2=names2,correct_score=correct_score)


game(name=names,names2=names2,correct_score=correct_score)
 

Вот пример кода других моих файлов.

 data = [
    {
        'name': 'Instagram',
        'follower_count': 346,
        'description': 'Social media platform',
        'country': 'United States'
    },
    {
        'name': 'Cristiano Ronaldo',
        'follower_count': 215,
        'description': 'Footballer',
        'country': 'Portugal'
    },
    {
        'name': 'Ariana Grande',
        'follower_count': 183,
        'description': 'Musician and actress',
        'country': 'United States'
    },
    {
        'name': 'Dwayne Johnson',
        'follower_count': 181,
        'description': 'Actor and professional wrestler',
        'country': 'United States'
    },
]
 

Комментарии:

1. Что должно произойти, если предположение неверно? И когда должна закончиться игра?

Ответ №1:

Подобная рекурсия требует двух вещей:

Во-первых, ваш алгоритм должен иметь условие завершения. То есть, должна быть возможность для завершения вашей функции без вызова самой себя.

Во-вторых, ваш алгоритм должен передать другое состояние (аргументы) для повторного вызова, чтобы он мог принять решение о дальнейшем завершении рекурсии. Если состояние (аргументы) остаются(остаются) неизменными, как вы можете решить, когда это будет сделано?

Вот и все! Это именно те две вещи, которые вам нужно учитывать.

Комментарии:

1. Спасибо, что я решил эту проблему с помощью вашего ответа.

2. Я очень рад это слышать!