Не могу заставить этот генератор случайных чисел работать правильно - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать генератор случайных чисел и вернуть случайное число, но этот код возвращает все числа до случайного числа.Как я могу вернуть только последнюю напечатанную строку?

import random

from_num = int(input('Generate a random number:\nFrom:'))
to_num = int(input('To:'))

for num in range(random.randrange(from_num,to_num+1)):
    if True:
        print(f'Random number: {num}')
    else:
        print('You did not entered valid min/max numbers')

Вывод для from_num = 0 и to_num = 20 в качестве примера, вместо '11' может вернуть любое число между этими двумя данными.

Random number: 0
Random number: 1
Random number: 2
Random number: 3
Random number: 4
Random number: 5
Random number: 6
Random number: 7
Random number: 8
Random number: 9
Random number: 10
Random number: 11

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

Заменить это:

for num in range(random.randrange(from_num,to_num+1)):
    if True:
        print(f'Random number: {num}')
    else:
        print('You did not entered valid min/max numbers')

на:

ran_num = random.randint(from_num,to_num)
print("Random number is " + str(ran_num))
0 голосов
/ 29 декабря 2018

Почему у вас есть петля?

import random

from_num = int(input('Generate a random number:\nFrom:'))
to_num = int(input('To:'))

if to_num > from_num:
    ran_number = random.randrange(from_num,to_num+1)
    print(f'Random number: {ran_number}')
else:
    print('You did not entered valid min/max numbers')
0 голосов
/ 29 декабря 2018

Следуя приведенным выше комментариям, просто распечатайте случайное значение, ничего не повторяя:

import random

from_num = int(input('Generate a random number:\nFrom:'))
to_num = int(input('To:'))

if from_num > to_num:
    print('You did not entered valid min/max numbers')
    return

random_num = random.randrange(from_num,to_num+1):
print(f'Random number: {random_num}')
...