Причина, по которой вам не повезет каждый раз, не имеет никакого отношения к случайности.
Попробуйте запустить код в отладчике или добавить его 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.