Для хешей и капч часто нужно генерировать последовательность чисел. Можно обойтись без модуля random для генерации чисел. Вы можете использовать циклы для наполнения строки. Также можно использовать элементы массива для случайного вывода. Все эти пути сложны и идти этой дорогой не стоит. Вы просто напишите много кода или запутаетесь. Давайте рассмотрим модуль random с его функциями. Модуль обладает большим набором функций.
Рассмотрим первый пример. random.random() возвращает случайное вещественное число, находящееся в диапазоне от 0.0 до 1.0
#!/usr/bin/python3
import random
number = random.random()
print(number)
'''
вывод:
0.7906021185906985
'''
Функция randint возвращает случайное целое число x в диапазоне a <= x <= b. Если вам нужно сгенерировать последовательность чисел от 1000 до 9999, то вам эта функция подойдёт.
#!/usr/bin/python3
import random
number = random.randint(10, 30)
print(number)
'''
вывод: 13
'''
Функция randrange(<Конец>) возвращает случайное целое число из определенного набора чисел. Если передадите число <Конец> для входного параметра, то оно и будет ограничителем. Будут генерироваться числа от 0 до 1000.
#!/usr/bin/python3
import random
number = random.randrange(1000)
print(number)
'''
вывод: 691
'''
randrange(<Начало>, <Конец>) возвращает случайное целое число из диапазона чисел. Диапазон имеет <Начало> и <Конец>. В примере ниже будут генерироваться числа от 1000 до 9999. Обратите внимание на то, что сгенерированное число будет состоять из 4 цифр.
#!/usr/bin/python3
import random
number = random.randrange(1000,9999)
print(number)
'''
вывод: 2213
'''
Этот пример похож на предыдущий. Тут применяется шаг в 100 единиц. Обратите внимание что на конце сгенерированного числа будет два нуля 00.
#!/usr/bin/python3
import random
number = random.randrange(1000,9999, 100)
print(number)
'''
вывод: 9600
'''
random.shuffle(iter[, random=random()]). Функция перемешивает элементы списка. Вы можете сгенерировать хеш из заданного набора символов. Вы можете использовать спецсимволы: $#!%.
#!/usr/bin/python3
import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
random.shuffle(numbers)
print(numbers)
'''
вывод:
[5, 8, 6, 7, 4, 2, 3, 1]
'''
Функция random.choice(iter). Возвращает случайный элемент из непустой последовательности. В качества последовательности можете использовать списки, кортежи.
#!/usr/bin/python3
import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
random_number = random.choice(numbers)
print(random_number)
'''
вывод:
8
'''
Функция random.sample(iter, len) возвращает список случайных элементов последовательности, из указанного количества элементов. Идеально подходит для хешей из чисел и букв. Параметры:
#!/usr/bin/python3
import random
hash = random.sample('123456789qwertyuiopasdfghjklzxcvbnm', 10)
str = ''.join(hash)
print(str)
'''
вывод:
js6ycwnqpo
'''
Функция random.uniform(<Начало>, <Конец>) возвращает случайное вещественное число, находящееся в диапазоне от <Начала> до <Конца>.
#!/usr/bin/python3
import random
num = random.uniform(1,4)
print(num)
'''
вывод:
1.8834060094647942
'''