Это (действительно) короткая программа, которая печатает 50 случайных чисел от 0 до 100, принимая начальное значение в качестве первого аргумента:
import random
import sys
if len(sys.argv) > 1:
random.seed(sys.argv[1])
for _ in range(0, 50):
print(random.randint(0, 100))
Затем из командной строки:
python3 myscript.py 1
Это напечатает непротиворечивый набор или случайные числа для любого числа, которое вы предоставите.
Более "настраиваемая" версия, которая также включает разбор аргументов:
import argparse
import random
import sys
parser = argparse.ArgumentParser()
parser.add_argument('--seed')
parser.add_argument('--count', default=50, type=int)
parser.add_argument('--max-value', default=100, type=int)
args = parser.parse_args()
if args.seed:
random.seed(args.seed)
for _ in range(0, args.count):
print(random.randint(0, args.max_value))
ПРИМЕЧАНИЕ. Желательно использовать int
в качестве аргумента для random.seed
, но random.seed
также будет принимать произвольную строку и «оцифровывать» ее в целях получения числа, которое будет использоваться для семена. Похоже, что для ваших целей это поведение по умолчанию на самом деле хорошо, так что может также воспользоваться этим.