Рандомное число float python

Генерация случайного числа с плавающей запятой в Python

В этом посте мы обсудим, как сгенерировать случайное число с плавающей запятой между интервалом [0.0, 1.0) в Python.

1. Использование random.uniform() функция

Вы можете использовать random.uniform(a, b) функция для генерации псевдослучайного числа с плавающей запятой n такой, что a

2. Использование random.random() функция

Если вам нужно сгенерировать случайное число с плавающей запятой в полуоткрытом интервале [0.0, 1.0) , вы можете позвонить в random.random() функция.

3. Использование random.randint() функция

С random.randrange() функция, вы можете генерировать случайное число с плавающей запятой в полуоткрытом интервале [0.0, 1.0) следующим образом:

4. Использование numpy.random.random() функция

Если вы предпочитаете NumPy, вы можете использовать numpy.random.random() функция для генерации случайных чисел с плавающей запятой в полуоткрытом интервале [0.0, 1.0) .

5. Использование numpy.random.random_sample() функция

Другое решение для генерации случайных поплавков в полуоткрытом интервале [0.0, 1.0) с NumPy использует numpy.random.random_sample() функция.

Это все о создании случайного числа с плавающей запятой в Python.

Средний рейтинг 4.92 /5. Подсчет голосов: 25

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Generate Random Float numbers in Python using random() and Uniform()

In this lesson, you will learn how to generate a random float number in Python using random() and uniform() functions of a random module.

Читайте также:  Name class php require

Use the following functions to generate random float numbers in Python. We will see each one of them with examples.

Function Description
random.random() Returns a random float number between 0 and 1
random.uniform(10.5, 75.5) Returns a random float number between a range
round(random.uniform(33.33, 66.66), 2) Returns a random float number up to 2 decimal places
random.SystemRandom().uniform(5, 10) Returns a secure random float number
numpy.random.uniform() Returns a random array of floats

functions to generate random float numbers

Table of contents

Generate a random float number between 0 to 1

Use a random.random() function of a random module to generate a random float number uniformly in the semi-open range [0.0, 1.0) .

import random x = random.random() # Random float number for i in range(3): print(random.random()) 
0.5089695129344164 0.07174329054775652 0.7576474741201431

Note: A random() function can only provide float numbers between 0.1. to 1.0. Us uniform() method to generate a random float number between any two numbers.

random.uniform() to get a random float number within a range

The random.uniform() function returns a random floating-point number between a given range in Python. For example, It can generate a random float number between 10 to 100 Or from 50.50 to 75.5.

Syntax

The random.uniform() function returns a random floating-point number N such that start

In simple words, uniform(10.5, 15.5) will generate any float number greater than or equal to 10.5 and less than or equal to 20.5.

The uniform() function accepts two arguments, and both are compulsory. If you miss any of them, you will get a TypeError uniform() missing 1 required positional argument .

  • start : it is the star number in a float range. i.e., lower limit. The default value is 0 if not specified.
  • stop : It is the end/last number in a range. It is the upper limit.

Example

Let see how to use the random.uniform() function to get a random float number within a range.

import random # Random float number between range 10.5 to 75.5 print(random.uniform(10.5, 75.5)) # Output 27.23469913175497 # between 10 and 100 print(random.uniform(10, 100)) # Output 81.77036292015993

Points to remember about uniform() function

The start value need not be smaller than the stop value.

Generate a random float number up to 2 decimal places

As you can see in the above examples, a random float number has more than ten decimal places. In many cases, we need a random float number with limited decimal digits after the decimal point.

Use the round() function inside the random.random() and random.uniform() function to limit float number precision to two decimal places.

import random # Random float number with 2 decimal places print(round(random.random(), 2)) # Output 0.21 print(round(random.uniform(33.33, 66.66), 2)) # Output 62.0 # With 1 decimal places print(round(random.random(), 1)) # Output 0.3 print(round(random.uniform(33.33, 66.66), 1)) # Output 54.6

Get random decimal

The random.uniform() and random.random() only returns float number. To get a random decimal.Decimal instance, you need explicitly convert it into decimal.Decimal .

import random import decimal # random decimal x = decimal.Decimal(str(random.uniform(100, 1000))) print(x) # Output 936.3682817788443

Random float number with step

Let’s see how to generate a random float number from a range() with a specific interval (The step value).

Читайте также:  Python run script with argument

For example, If you want to get a random integer from a range(1, 100, 2) with an interval 2, you can do that easily using random.choice(range(1, 100, 2)) . But as you know, range() doesn’t support the float numbers. In this case, we need to convert an integer to floats.

import random # random float from 1 to 99.9 int_num = random.choice(range(10, 1000)) float_num = int_num/10 print(float_num) # Output 81.2

Note: we used random.choice() to choose a single number from the range of float numbers.

Generate a list of random floats between a range

In this section, we will see how to generate multiple random float numbers. In this example, we will see how to create a list of 10 random floats within a range of 50.50 to 500.50.

import random random_float_list = [] # Set a length of the list to 10 for i in range(0, 10): # any random float between 50.50 to 500.50 # don't use round() if you need number as it is x = round(random.uniform(50.50, 500.50), 2) random_float_list.append(x) print(random_float_list) # Output [98.01, 454.48, 117.69, 51.44, 415.01, 455.52, 65.39, 385.07, 112.38, 434.1]

Note: In the above example, there is a chance to get duplicate float numbers in a list. let’s see how to generate a list of unique random floats.

Create a list of unique random float numbers

If you want to generate a list of unique random float numbers, you can do that easily using random.sample(range(1, 100), 10)) .

The random sample() function never generates the duplicate. But as you know, range() doesn’t support the float numbers. But we have two workarounds to get the list of unique random float numbers. Let’s see those.

Option 1: Use a list of integers to generate floats.

import random list_Size = 10 # random float from 1 to 99.9 integer_list = random.sample(range(10, 1000), list_Size) float_list = [x/10 for x in integer_list] print(float_list) # Output [7.9, 84.6, 72.1, 92.9, 64.1, 2.8, 32.6, 36.9, 97.4, 64.4]

Note: we used the random.sample() to choose 10 numbers from a range of numbers.

Option 2: Avoid duplicates manually

import random def get_float_list(start, stop, size): result = [] unique_set = set() for i in range(size): x = round(random.uniform(start, stop),2) while x in unique_set: x = round(random.uniform(start, stop),2) unique_set.add(x) result.append(x) return result print("List of unique random numbers between 100, 1000") print(get_float_list(100, 1000, 10)) # Output [918.45, 544.86, 595.18, 830.98, 516.11, 531.88, 255.85, 727.47, 687.23, 558.28]

Difference between uniform() and random()

  • The random() function doesn’t take any parameters, while uniform() takes two parameters, i.e., start and stop.
  • The random() function generates a random float number between 0.0 to 1.0 but never returns the upper bound. I.e., It will never generate 1.0. On the other side, the uniform(start, stop) generates any random float number between the given start and stop number. Due to the rounding effect, it can return a stop number.
Читайте также:  Найти и установить javascript

Generate a secure random float number

Above all examples are not cryptographically secure. The cryptographically secure random generator generates random numbers using synchronization methods to ensure that no two processes can obtain the same number at the same time. If you are producing random floats for a security-sensitive application, then you must use this approach.

Use the random.SystemRandom().random() or random.SystemRandom().uniform() functions to generate a secure random float number in Python.

import random secure_random = random.SystemRandom() randomfloat = secure_random.random() print(randomfloat) # output 0.800760229291861 randomfloat = secure_random.uniform(12.5, 77.5) print(randomfloat) # Output 35.0470859352744

Use numpy.random to generate an array of random float numbers

NumPy isn’t a part of a standard Python library. However, it has various functions to generate random data. You can install NumPy using pip install numpy . Let see how to use it to generate a random float number and create an array of random float numbers.

Get random float number using a NumPy

import numpy as np random_float = np.random.randn() print(random_float) # Output 0.833280610141848

Numpy to generate a random float number between range

import numpy as np random_float_number = np.random.uniform(49.5, 99.5) print(random_float_number) # Output 59.11713060647423

Create an n-dimensional array of float numbers

Use a numpy.random.rand() to create an n-dimensional array of float numbers and populate it with random samples from a uniform distribution over [0, 1) .

import numpy random_float_array = numpy.random.rand(2, 3) # Random float array 2X3 print(random_float_array,"\n") 
[[0.34344184 0.8833125 0.76322675] [0.17844326 0.7717775 0.86237081]]

Between any float range

Use a numpy.random.uniform() function to generate a random 2×2 array.

import numpy #2X2 random float random_float_array = numpy.random.uniform(75.5, 125.5, size=(2, 2)) print(random_float_array)
[[107.50697835 123.84889979] [106.26566127 101.92179508]]

Next steps

I want to hear from you. Do you know other alternative ways of generating random float numbers Python? Or I missed one of the usages of random.uniform() ?. Either way, let me know by leaving a comment below.

Also, try to solve the following exercise and quiz to have a better understanding of working with random data in Python.

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

About Vishal

I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 10 questions
  • Each Quiz contains 12-15 MCQ

Источник

Оцените статью