Содержание
Краткая памятка по генерации чисел в Python
- Импортируйте модуль random: import random
- Для целого числа в диапазоне используйте random.randint(1, 10)
- Для вещественного числа от 0 до 1 используйте random.random()
- Для вещественного числа в диапазоне используйте random.uniform(1.5, 5.5)
- Для выбора одного элемента из списка используйте random.choice(list)
- Для выбора нескольких элементов без повторов используйте random.sample(list, k)
- Для перемешивания списка используйте random.shuffle(list)
- Для воспроизводимости результатов используйте random.seed(42)
- Для криптографической стойкости используйте модуль secrets
- Для генерации случайной строки комбинируйте random.choice с циклом
Как использовать модуль random в Python
Для достижения перечисленных выше задач модуль random будет использовать разнообразные функции. Способы использования данных функций будут описаны в следующих разделах статьи.
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
В самом начале работы необходимо импортировать модуль random в программу. Только после этого его можно будет полноценно использовать. Оператор для импорта модуля random выглядит следующим образом:
Таблица №1
|
1
|
import random
|
Теперь рассмотрим использование самого модуля random на простом примере:
import random print(«Вывод случайного числа при помощи использования ()») print(())
Таблица №2
|
1
2
3
4
5
|
import random
print(«Вывод случайного числа при помощи использования ()»)
print(random.random())
|
Таблица №3
|
1
2
|
Вывод случайного числа при помощи использования random.random()
0.9461613475266107
|
случайно число
Как видите, в результате мы получили 0.9461613475266107. У вас, конечно, выйдет другое.
- random() является базовой функцией модуля random;
- Почти все функции модуля random зависят от базовой функции random();
- random() возвращает следующее случайное число с плавающей запятой в промежутке [0.0, 1.0].
Перед разбором функций модуля random давайте рассмотрим основные сферы их применения.
Генерация случайных чисел в Python
Давайте рассмотрим самый популярный случай использования модуля random — генерацию случайного числа. Для получения случайного целого числа в Python используется функция randint().
Для генерации случайных целых чисел можно использовать следующие две функции:
- randint()
- randrange()
как получить случайно сгенерированное число
В следующем примере показано, в промежутке между 0 и 9.
Таблица №4
|
1
2
3
4
5
|
from random import randint
print(«Вывод случайного целого числа «, randint(0, 9))
print(«Вывод случайного целого числа «, randrange(0, 10, 2))
|
Таблица №5
|
1
2
|
Вывод случайного целого числа 5
Вывод случайного целого числа 2
|
В следующих разделах статьи будут рассмотрены некоторые другие способы генерации случайного числа в Python.
Функция random() — "случайные" вещественные числа
Чтобы получить случайное вещественное число, или, как говорят, число с плавающей точкой, следует использовать функцию random() из одноименного модуля random языка Python. Она не принимает никаких аргументов и возвращает число от 0 до 1, не включая 1:
>>> () 0.17855729241927576 >>> () 0.3310978930421846
Чтобы получать случайные вещественные числа в иных пределах, отличных от [0; 1), прибегают к математическим приемам. Так если умножить полученное из random() число на любое целое, то получится вещественное в диапазоне от 0 до этого целого, не включая его:
>>> () * 10 2.510618091637596 >>> () * 10 6.977540211221759
Если нижняя граница должна быть отличной от нуля, то число из random() надо умножать на разницу между верхней и нижней границами, после чего прибавить нижнюю:
В данном примере число умножается на 6. В результате получается число от 0 до 6. Прибавив 4, получаем число от 4 до 10.
Нижняя граница равна -1. При вычитании получается +. Когда же добавляется нижняя граница, то плюс заменяется на минус.
Для получения псевдослучайных чисел можно пользоваться исключительно функцией random(). Если требуется получить целое, то всегда можно округлить до него с помощью round() или отбросить дробную часть с помощью int():
Выше были показаны примеры и формула получения вещественных случайных чисел, так как в других языках может не быть функции, позволяющей сделать это более легким способом. Однако это не касается Python. Здесь в модуле random также имеется функция uniform(), которая генерирует вещественные числа в указанных пределах (обе границы входят в диапазон):
- Используя функцию randrange() получите псевдослучайное четное число в пределах от 6 до 12. Также получите число кратное пяти в пределах от 5 до 100.
- Напишите программу, которая запрашивает у пользователя границы диапазона, и какое (целое или вещественное) число он хочет получить. Выводит на экран подходящее случайное число.
Используя функцию randrange() получите псевдослучайное четное число в пределах от 6 до 12. Также получите число кратное пяти в пределах от 5 до 100.
Напишите программу, которая запрашивает у пользователя границы диапазона, и какое (целое или вещественное) число он хочет получить. Выводит на экран подходящее случайное число.
Функции для получения целых "случайных" чисел — randint() и randrange()
Функции randint() и randrange() генерируют псевдослучайные целые числа. Первая из них наиболее простая и всегда принимает только два аргумента — пределы целочисленного диапазона, из которого выбирается любое число:
В случае randint() обе границы включаются в диапазон, т. е. на языке математики отрезок описывается как [a; b].
Но первое число всегда должно быть меньше или, по крайней мере, равно второму. То есть a <= b.
Функция randrange() сложнее. Она может принимать один аргумент, два или даже три. Если указан только один, то она возвращает случайное число от 0 до указанного аргумента. Причем сам аргумент в диапазон не входит. На языке математики – это [0; a).
Если в randrange() передается два аргумента, то она работает аналогично randint() за одним исключением. Верхняя граница не входит в диапазон, то есть [a; b).
Если в randrange() передается три аргумента, то первые два — это границы диапазона, как в случае с двумя аргументами, а третий — так называемый шаг. Если, например, функция вызывается как randrange(10, 20, 3), то «случайное» число будет выбираться из чисел 10, 13, 16, 19:
>>> (10, 20, 3) 13 >>> (10, 20, 3) 19 >>> (10, 20, 3) 10
Генерация случайного целого числа — randrange() модуль random
Метод () используется для генерации случайного целого числа в пределах заданного промежутка. Скажем, для получения любого числа в диапазоне между 10 и 50.
Шаг показывает разницу между каждым числом заданной последовательности. Шаг по умолчанию равен 1, однако его значение можно изменить.
import random print(«Генерация случайного числа в пределах заданного промежутка») print((10, 50, 5)) print((10, 50, 5))
Таблица №6
|
1
2
3
4
5
6
|
import random
print(«Генерация случайного числа в пределах заданного промежутка»)
print(random.randrange(10, 50, 5))
print(random.randrange(10, 50, 5))
|
Таблица №7
|
1
2
3
|
Генерация случайного числа в пределах заданного промежутка
10
15
|
Генерации числа с плавающей запятой — uniform() модуль random
- () используется для генерации числа с плавающей запятой в пределах заданного промежутка
- Значение конечной точки может включаться в диапазон, но это не обязательно. Все зависит от округления значения числа с плавающей запятой;
- Метод может, например, сгенерировать случайно вещественное число в промежутке между 10.5 и 25.5.
import random print(«Число с плавающей точкой в пределах заданного промежутка») print((10.5, 25.5))
Таблица №8
|
1
2
3
4
5
|
import random
print(«Число с плавающей точкой в пределах заданного промежутка»)
print(random.uniform(10.5, 25.5))
|
Число с плавающей точкой в пределах заданного промежутка 22.095283175159786
Таблица №9
|
1
2
|
Число с плавающей точкой в пределах заданного промежутка
22.095283175159786
|
triangular(low, high, mode) из модуля random
Значение нижнего предела по умолчанию равно нулю, в верхнего — единице. Кроме того, пик аргумента по умолчанию установлен на середине границ, что обеспечивает симметричное распределение.
random. triangular() используется в генерации случайных чисел для треугольного распределения с целью использования полученных значений в симуляции. Это значит, что в при генерации значения применяется треугольное распределение вероятности.
Функция
import random print(«Число с плавающей точкой через triangular») print((10.5, 25.5, 5.5))
Таблица №10
|
1
2
3
4
5
|
import random
print(«Число с плавающей точкой через triangular»)
print(random.triangular(10.5, 25.5, 5.5))
|
Таблица №11
|
1
2
|
Число с плавающей точкой через triangular
16.7421565549115
|
Выбор случайного элемента из списка Python
Предположим, вам дан python список городов, и вы хотите вывести на экран случайно выбранный элемент из списка городов. Посмотрим, как это можно сделать:
Таблица №12
|
1
2
3
4
5
|
import random
city_list = [‘New York’, ‘Los Angeles’, ‘Chicago’, ‘Houston’, ‘Philadelphia’]
print(«Выбор случайного города из списка — «, random.choice(city_list))
|
Таблица №13
|
1
|
Выбор случайного города из списка — Houston
|
Выбор случайного элемента из списка choice() модуль random
import random list = [55, 66, 77, 88, 99] print(» используется для выбора случайного элемента из списка — «, (list))
Таблица №14
|
1
2
3
4
5
|
import random
list = [55, 66, 77, 88, 99]
print(» используется для выбора случайного элемента из списка — «, random.choice(list))
|
Таблица №15
|
1
|
random.choice используется для выбора случайного элемента из списка — 55
|
Метод sample(population, k) из модуля random
Метод () используется, когда требуется выбрать несколько элементов из заданной последовательности population.
- Метод sample() возвращает список уникальных элементов, которые были выбраны из последовательности population. Итоговое количество элементов зависит от значения k;
- Значение в population может быть представлено в виде списка или любой другой последовательности.
Таблица №16
|
1
2
3
4
5
|
import random
list = [2, 5, 8, 9, 12]
print («() «, random.sample(list,3))
|
Таблица №17
|
1
|
random.sample() [5, 12, 2]
|
Случайные элементы из списка — choices() модуль random
- (population, weights=None, *, cum_weights=None, k=1)
- Метод () используется, когда требуется выбрать несколько случайных элементов из заданной последовательности.
- Метод choices() был введен в версии Python 3.6. Он также позволяет повторять несколько раз один и тот же элемент.
import random # Выборка с заменой list = [20, 30, 40, 50,60, 70, 80, 90] sampling = (list, k=5) print(«Выборка с методом choices «, sampling)
Таблица №18
|
1
2
3
4
5
6
7
8
|
import random
# Выборка с заменой
list = [20, 30, 40, 50 ,60, 70, 80, 90]
sampling = random.choices(list, k=5)
print(«Выборка с методом choices «, sampling)
|
Таблица №19
|
1
|
Выборка с методом choices [30, 20, 40, 50, 40]
|
Генератор псевдослучайных чисел — seed() модуль random
- Метод seed() используется для инициализации генератора псевдослучайных чисел в Python;
- Модуль random использует значение из seed, или отправной точки как основу для генерации случайного числа. Если значения seed нет в наличии, тогда система будет отталкиваться от текущего времени.
import random (6) print(«Случайное число с семенем «,()) print(«Случайное число с семенем «,())
Таблица №20
|
1
2
3
4
5
6
7
|
import random
random.seed(6)
print(«Случайное число с семенем «,random.random())
print(«Случайное число с семенем «,random.random())
|
Random number with seed 0.793340083761663 Random number with seed 0.793340083761663
Таблица №21
|
1
2
|
Random number with seed 0.793340083761663
Random number with seed 0.793340083761663
|
— Генератор псевдослучайных чисел
PRNG является англоязычным акронимом, который расшифровывается как «pseudorandom number generator» — генератор псевдослучайных чисел. Известно, что в Python модуль random можно использовать для генерации случайных скалярных числовых значений и данных.
- Для генерации массива случайных чисел необходимо использовать ();
- В модуле numpy есть пакет, который содержит обширный набор функций для генерации случайных n-мерных массивов для различных распределений.
Перемешивание данных — shuffle() из модуля random
Метод () используется для перемешивания данных списка или другой последовательности. Метод shuffle() смешивает элементы списка на месте. Самый показательный пример использования — тасование карт.
list = [2, 5, 8, 9, 12] (list) print («Вывод перемешанного списка «, list)
Таблица №22
|
1
2
3
4
5
|
list = [2, 5, 8, 9, 12]
random.shuffle(list)
print («Вывод перемешанного списка «, list)
|
Таблица №23
|
1
|
Вывод перемешанного списка [8, 9, 2, 12, 5]
|
Генератор случайной строки в Python
В данном разделе будет подробно расписано, как сгенерировать случайную строку фиксированной длины в Python.
- Генерация случайной строки фиксированной длины;
- Получение случайной алфавитно-цифровой строки, среди элементов которой будут как буквы, так и числа;
- Генерация случайного пароля, который будет содержать буквы, цифры и специальный символы.
Криптографическая зашита генератора случайных данных в Python
Случайно сгенерированные числа и данные, полученные при помощи модуля random в Python, лишены криптографической защиты. Следовательно, возникает вопрос — как добиться надежной генерации случайных чисел?
Криптографически надежный генератор псевдослучайных чисел представляет собой генератор чисел, который обладает особенностями, что делают его подходящим для использования в криптографических приложениях, где безопасность данных имеет первостепенное значение.
- Все функции криптографически надежного генератора возвращают полученные случайным образом байты;
- Значение случайных байтов, полученных в результате использования функции, зависит от источников ОС.
- Качество генерации также зависит от случайных источников ОС.
Для обеспечения криптографической надежности генерации случайных чисел можно использовать следующие подходы:
- Применение модуля secrets для защиты случайных данных;
- Использование из модуля os ();
- Использование класса.
Таблица №24
|
1
2
3
4
5
6
7
8
|
import random
import secrets
number = random.SystemRandom().random()
print(«Надежное число «, number)
print(«Надежный токен байтов», secrets.token_bytes(16))
|
Таблица №25
|
1
2
3
|
Надежное число 0.11139538267693572
Надежный токен байтов b‘\xae\xa0\x91*.\xb6\xa1\x05=\xf7+>\r;Y\xc3’
|
getstate() и setstate() в генераторе случайных данных Python
Используя данные функции, можно сгенерировать одинаковое количество чисел или последовательностей данных.
Состояние генератора getstate() модуль random
Функция getstate() возвращает определенный объект, зафиксировав текущее внутреннее состояние генератора случайных данных. Данное состояние передается методу setstate() для восстановления полученного состояния в качестве текущего.
На заметку: Изменив значение текущего состояния на значение предыдущего, мы можем получить случайные данные вновь. Например, если вы хотите получить аналогичную выборку вновь, можно использовать данные функции.
Восстанавливает внутреннее состояние генератора — setstate() модуль random
Функция setstate() восстанавливает внутреннее состояние генератора и передает его состоянию объекта. Это значит, что вновь будет использован тот же параметр состояния state. Объект state может быть получен при помощи вызова функции getstate().
Зачем нужны функции getstate() и setstate()?
Если вы получили предыдущее состояние и восстановили его, тогда вы сможете оперировать одними и теми же случайными данными раз за разом. Помните, что использовать другую функцию random в данном случае нельзя. Также нельзя изменить значения заданных параметров. Сделав это, вы измените значение состояния state.
import random number_list = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30] print(«Первая выборка «, (number_list,k=5)) # хранит текущее состояние в объекте state state = () print(«Вторая выборка «, (number_list,k=5)) # Восстанавливает состояние state, используя setstate (state) #Теперь будет выведен тот же список второй выборки print(«Третья выборка «, (number_list,k=5)) # Восстанавливает текущее состояние state (state) # Вновь будет выведен тот же список второй выборки print(«Четвертая выборка «, (number_list,k=5))
Таблица №26
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import random
number_list = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
print(«Первая выборка «, random.sample(number_list,k=5))
# хранит текущее состояние в объекте state
state = random.getstate()
print(«Вторая выборка «, random.sample(number_list,k=5))
# Восстанавливает состояние state, используя setstate
random.setstate(state)
#Теперь будет выведен тот же список второй выборки
print(«Третья выборка «, random.sample(number_list,k=5))
# Восстанавливает текущее состояние state
random.setstate(state)
# Вновь будет выведен тот же список второй выборки
print(«Четвертая выборка «, random.sample(number_list,k=5))
|
Первая выборка [18, 15, 30, 9, 6] Вторая выборка [27, 15, 12, 9, 6] Третья выборка [27, 15, 12, 9, 6] Четвертая выборка [27, 15, 12, 9, 6]
Таблица №27
|
1
2
3
4
|
Первая выборка [18, 15, 30, 9, 6]
Вторая выборка [27, 15, 12, 9, 6]
Третья выборка [27, 15, 12, 9, 6]
Четвертая выборка [27, 15, 12, 9, 6]
|
Как можно заметить в результате вывода — мы получили одинаковые наборы данных. Это произошло из-за сброса генератора случайных данных.
Генерация случайного n-мерного массива вещественных чисел
- Использование () для генерации n-мерного массива случайных вещественных чисел в пределах [0.0, 1.0)
- Использование () для генерации n-мерного массива случайных вещественных чисел в пределах [low, high)
import numpy random_float_array = (2, 2) print(«2 X 2 массив случайных вещественных чисел в [0.0, 1.0] \n», random_float_array,»\n») random_float_array = (25.5, 99.5, size=(3, 2)) print(«3 X 2 массив случайных вещественных чисел в [25.5, 99.5] \n», random_float_array,»\n»)
Таблица №28
|
1
2
3
4
5
6
7
8
|
import numpy
random_float_array = numpy.random.rand(2, 2)
print(«2 X 2 массив случайных вещественных чисел в [0.0, 1.0] \n», random_float_array,«\n»)
random_float_array = numpy.random.uniform(25.5, 99.5, size=(3, 2))
print(«3 X 2 массив случайных вещественных чисел в [25.5, 99.5] \n», random_float_array,«\n»)
|
2 X 2 массив случайных вещественных чисел в [0.0, 1.0] [[0.08938593 0.89085866] [0.47307169 0.41401363]] 3 X 2 массив случайных вещественных чисел в [25.5, 99.5] [[55.4057854 65.60206715] [91.62185404 84.16144062] [44.348252 27.28381058]]
Таблица №29
|
1
2
3
4
5
6
7
8
|
2 X 2 массив случайных вещественных чисел в [0.0, 1.0]
[[0.08938593 0.89085866]
[0.47307169 0.41401363]]
3 X 2 массив случайных вещественных чисел в [25.5, 99.5]
[[55.4057854 65.60206715]
[91.62185404 84.16144062]
[44.348252 27.28381058]]
|
Генерация случайного n-мерного массива целых чисел
import numpy random_integer_array =.random_integers(1, 10, 5) print(«1-мерный массив случайных целых чисел \n», random_integer_array,»\n») random_integer_array =.random_integers(1, 10, size=(3, 2)) print(«2-мерный массив случайных целых чисел \n», random_integer_array)
Таблица №30
|
1
2
3
4
5
6
7
8
|
import numpy
random_integer_array = numpy.random.random_integers(1, 10, 5)
print(«1-мерный массив случайных целых чисел \n», random_integer_array,«\n»)
random_integer_array = numpy.random.random_integers(1, 10, size=(3, 2))
print(«2-мерный массив случайных целых чисел \n», random_integer_array)
|
Таблица №31
|
1
2
3
4
5
6
7
|
1—мерный массив случайных целых чисел
[10 1 4 2 1]
2—мерный массив случайных целых чисел
[[ 2 6]
[ 9 10]
[ 3 6]]
|
Выбор случайного элемента из массива чисел или последовательности
- Использование () для генерации случайной выборки;
- Использование данного метода для получения одного или нескольких случайных чисел из n-мерного массива с заменой или без нее.
import numpy array =[10, 20, 30, 40, 50, 20, 40] single_random_choice = (array, size=1) print(«один случайный выбор из массива 1-D», single_random_choice) multiple_random_choice = (array, size=3, replace=False) print(«несколько случайных выборов из массива 1-D без замены», multiple_random_choice) multiple_random_choice = (array, size=3, replace=True) print(«несколько случайных выборов из массива 1-D с заменой», multiple_random_choice)
Таблица №32
|
1
2
3
4
5
6
7
8
9
10
11
12
|
import numpy
array =[10, 20, 30, 40, 50, 20, 40]
single_random_choice = numpy.random.choice(array, size=1)
print(«один случайный выбор из массива 1-D», single_random_choice)
multiple_random_choice = numpy.random.choice(array, size=3, replace=False)
print(«несколько случайных выборов из массива 1-D без замены», multiple_random_choice)
multiple_random_choice = numpy.random.choice(array, size=3, replace=True)
print(«несколько случайных выборов из массива 1-D с заменой», multiple_random_choice)
|
один случайный выбор из массива 1-D несколько случайных выборов из массива 1-D без замены [10 40 50] несколько случайных выборов из массива 1-D с заменой [20 20 10]
Таблица №33
|
1
2
3
|
один случайный выбор из массива 1—D [40]
несколько случайных выборов из массива 1—D без замены [10 40 50]
несколько случайных выборов из массива 1—D с заменой [20 20 10]
|
Генерация случайных универсально уникальных ID
У модуля есть функции для генерации всех версий UUID. Используя функцию uuid.uuid4(), можно получить случайно сгенерированное уникальное ID длиной в 128 битов, которое к тому же является криптографически надежным.
Полученные уникальные ID используются для идентификации документов, пользователей, ресурсов и любой другой информации на компьютерных системах.
import uuid # получить уникальный UUID safeId = uuid.uuid4() print(«безопасный уникальный id «, safeId)
Таблица №34
|
1
2
3
4
5
6
|
import uuid
# получить уникальный UUID
safeId = uuid.uuid4()
print(«безопасный уникальный id «, safeId)
|
Таблица №35
|
1
|
безопасный уникальный id fb62463a—cd93—4f54—91ab—72a2e2697aff
|
Игра в кости с использованием модуля random в Python
Далее представлен код простой игры в кости, которая поможет понять принцип работы функций модуля random. В игре два участника и два кубика.
- Участники по очереди бросают кубики, предварительно встряхнув их;
- Алгоритм высчитывает сумму значений кубиков каждого участника и добавляет полученный результат на доску с результатами;
- Участник, у которого в результате большее количество очков, выигрывает.
import random PlayerOne = «Анна» PlayerTwo = «Алекс» AnnaScore = 0 AlexScore = 0 # У каждого кубика шесть возможных значений diceOne = [1, 2, 3, 4, 5, 6] diceTwo = [1, 2, 3, 4, 5, 6] def playDiceGame(): «»»Оба участника, Анна и Алекс, бросают кубик, используя метод shuffle»»» for i in range(5): #оба кубика встряхиваются 5 раз (diceOne) (diceTwo) firstNumber = (diceOne) # использование метода choice для выбора случайного значения SecondNumber = (diceTwo) return firstNumber + SecondNumber print(«Игра в кости использует модуль random\n») #Давайте сыграем в кости три раза for i in range(3): # определим, кто будет бросать кости первым AlexTossNumber = (1, 100) # генерация случайного числа от 1 до 100, включая 100 AnnaTossNumber = (1, 101, 1) # генерация случайного числа от 1 до 100, не включая 101 if(AlexTossNumber > AnnaTossNumber): print(«Алекс выиграл жеребьевку.») AlexScore = playDiceGame() AnnaScore = playDiceGame() else: print(«Анна выиграла жеребьевку.») AnnaScore = playDiceGame() AlexScore = playDiceGame() if(AlexScore > AnnaScore): print («Алекс выиграл игру в кости. Финальный счет Алекса:», AlexScore, «Финальный счет Анны:», AnnaScore, «\n») else: print(«Анна выиграла игру в кости. Финальный счет Анны:», AnnaScore, «Финальный счет Алекса:», AlexScore, «\n»)
Таблица №36
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
import random
PlayerOne = «Анна»
PlayerTwo = «Алекс»
AnnaScore = 0
AlexScore = 0
# У каждого кубика шесть возможных значений
diceOne = [1, 2, 3, 4, 5, 6]
diceTwo = [1, 2, 3, 4, 5, 6]
def playDiceGame():
«»»Оба участника, Анна и Алекс, бросают кубик, используя метод shuffle»»»
for i in range(5):
#оба кубика встряхиваются 5 раз
random.shuffle(diceOne)
random.shuffle(diceTwo)
firstNumber = random.choice(diceOne) # использование метода choice для выбора случайного значения
SecondNumber = random.choice(diceTwo)
return firstNumber + SecondNumber
print(«Игра в кости использует модуль random\n»)
#Давайте сыграем в кости три раза
for i in range(3):
# определим, кто будет бросать кости первым
AlexTossNumber = random.randint(1, 100) # генерация случайного числа от 1 до 100, включая 100
AnnaTossNumber = random.randrange(1, 101, 1) # генерация случайного числа от 1 до 100, не включая 101
if( AlexTossNumber > AnnaTossNumber):
print(«Алекс выиграл жеребьевку.»)
AlexScore = playDiceGame()
AnnaScore = playDiceGame()
else:
print(«Анна выиграла жеребьевку.»)
AnnaScore = playDiceGame()
AlexScore = playDiceGame()
if(AlexScore > AnnaScore):
print («Алекс выиграл игру в кости. Финальный счет Алекса:», AlexScore, «Финальный счет Анны:», AnnaScore, «\n»)
else:
print(«Анна выиграла игру в кости. Финальный счет Анны:», AnnaScore, «Финальный счет Алекса:», AlexScore, «\n»)
|
Игра в кости использует модуль random Анна выиграла жеребьевку. Анна выиграла игру в кости. Финальный счет Анны: 5 Финальный счет Алекса: 2 Анна выиграла жеребьевку. Анна выиграла игру в кости. Финальный счет Анны: 10 Финальный счет Алекса: 2 Алекс выиграл жеребьевку. Анна выиграла игру в кости. Финальный счет Анны: 10 Финальный счет Алекса: 8
Таблица №37
|
1
2
3
4
5
6
7
8
9
10
|
Игра в кости использует модуль random
Анна выиграла жеребьевку.
Анна выиграла игру в кости. Финальный счет Анны: 5 Финальный счет Алекса: 2
Анна выиграла жеребьевку.
Анна выиграла игру в кости. Финальный счет Анны: 10 Финальный счет Алекса: 2
Алекс выиграл жеребьевку.
Анна выиграла игру в кости. Финальный счет Анны: 10 Финальный счет Алекса: 8
|
Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.
- 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2026 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»
Ответы на популярные вопросы о генерации чисел в Python
Вопрос: Как сгенерировать случайное целое число в заданном диапазоне?
Ответ: Используйте функцию randint(a, b) из модуля random, где a и b — границы диапазона.
Вопрос: В чем разница между randint() и randrange()?
Ответ: randint(a, b) включает обе границы, а randrange(start, stop, step) не включает верхнюю границу stop.
Вопрос: Как получить случайное число с плавающей точкой от 0 до 1?
Ответ: Используйте функцию random(), которая возвращает число в диапазоне [0.0, 1.0).
Вопрос: Как сгенерировать случайное вещественное число в произвольном диапазоне?
Ответ: Используйте uniform(a, b), где a и b — границы диапазона.
Вопрос: Как сделать результаты генерации воспроизводимыми?
Ответ: Используйте функцию seed() с фиксированным значением перед генерацией чисел.
Вопрос: Как выбрать случайный элемент из списка?
Ответ: Используйте функцию choice(sequence), которая возвращает один случайный элемент.
Вопрос: Как выбрать несколько случайных элементов из списка без повторений?
Ответ: Используйте функцию sample(population, k), где k — количество элементов.
Вопрос: Как перемешать элементы списка случайным образом?
Ответ: Используйте функцию shuffle(list), которая изменяет исходный список.
Вопрос: Как сгенерировать случайную строку?
Ответ: Скомбинируйте random.choice() с набором символов (буквы, цифры) в цикле.
Вопрос: Как получить криптографически безопасное случайное число?
Ответ: Используйте модуль secrets, например secrets.randbelow(n) или secrets.choice().





















