Задача с модулем random в Python

Рейтинг: -2Ответов: 2Опубликовано: 28.05.2023

Не получается сделать генератор случайных чисел, в котором две цифры будут теми, которые я указал. Мне нужно, чтобы программа вывела 4 варианта ответов (например: 650, 605, 560 и 506), а пользователь выбрал верный вариант (605). Если вариант пользователя верен, то всё хорошо, если нет, то я напишу другой вариант кода. Проблема заключается в том, что я не могу вывести эти 4 варианта ответов и сравнить их с нужным мне вариантом (который заранее был выбран программой (605).

x=6
y=5
z=0
number=     #тут уже должно получаться 4 варианта из порядка первых 3 переменных. Я перепробовал разные варианты, но не выходит то, что мне нужно)

Одним предложением можно сказать, что я хочу написать программу, как (Укажите число, в котором 6 единиц и 5 сотен. Варианты ответа: 650, 605, 560, 506)

Ответы

▲ 0Принят
import random

x = 6
y = 5
z = 0

# Создаем список из всех возможных комбинаций цифр x, y и z
options = [int(str(x) + str(y) + str(z)), int(str(x) + str(z) + str(y)), int(str(y) + str(x) + str(z)), int(str(z) + str(x) + str(y))]

# Перемешиваем список в случайном порядке
random.shuffle(options)

# Выводим варианты ответов
print("Укажите число, в котором 6 единиц и 5 сотен.")
print("Варианты ответа:")
for i, option in enumerate(options):
    print(f"{i+1}. {option}")

# Записываем правильный ответ (605) в отдельную переменную
correct_answer = 605

# Получаем ответ от пользователя
user_input = int(input("Выберите верный вариант: "))

# Проверяем ответ пользователя
if user_input == correct_answer:
    print("Верно!")
else:
    print("Неверно. Попробуйте еще раз.")
▲ 5
import itertools
x = 6
y = 5
z = 0
# создадим множество
number = set()
# перебираем различные вариации с помощью itertools.permutations, можете прочитать про него
for i in itertools.permutations(str(x) + str(y) + str(z)):
    # переводим кортежи в строку
    a = ''.join(i)
    # число не может начинаться с нуля
    if a[0] != '0':
        # добавляем в наше множество
        number.add(int(a))
print(number)

Я предлагаю использовать set(), для того чтобы, например, комбинация x=4 y=4 z=5 не давала одинаковых значений, если это не нужно, то используйте обычный список number = []