Причина, по которой вам не повезет каждый раз, не имеет никакого отношения к случайности.
Попробуйте запустить код в отладчике или добавить его 7к тому, что вы получаете.
Если вы введете, скажем randint, тогда 10строка '10'. Эта строка никогда не будет равна числу 7.
Чтобы выполнить эту работу, вам нужно изменить две вещи:
- На самом деле вызывайте , вместо того , чтобы создавать строку, которая выглядит как исходный код для ее вызова.
choice = randint(1, int(z)) - Назовите это на число, например
10, не на строку, напримерseed.
Так:
os.urrandom
Как только вы исправите это, случайные числа будут случайными. Технически они создаются PRNG (генератором псевдослучайных чисел), фантастическим алгоритмом, который берет кучу информации о состоянии и выплескивает последовательность чисел, которые выглядят случайными, но на самом деле предсказуемы из этого состояния. Но, как объясняется , по умолчанию, семена Python, сгенерированные генератором (который на большинстве платформ является другим PRNG, но сам заселен любыми фактическими случайными данными).from random import randint, seed seed(42) z = input("What's the max number you want me to guess?") choice = randint(1, int(z)) print(choice)2
Если вы хотите, чтобы последовательность повторялась, для тестирования вы можете вызвать seedфункцию вручную. Например, эта программа:
print
a € | даст вам 2каждый раз, когда вы просите случайное число от 1 до 10.