Форум сайта python.su
0
Я - новичок. Новичок от слова совсем. Изучаю Python.
Прошу помощи в работе кода.
Код выдает рандомные числа в заданном диапазоне. При совпадение выданного числа с заданным ( в примере число 15) выводит сообщение и останавливается.
Приложенный код работает , но в выдаваемых числах число 15 проскакивает.
Что не так? Прошу помощи спецов.
Вот код:
import random def do(): r = random.randint(1, 20) return r while do() != 15: print (do()) do() else: print ('Число найдено!')
11 5 15 5 20 1 11 18 Число найдено! >>>
Отредактировано Djonny (Фев. 16, 2017 11:21:00)
Офлайн
857
DjonnyПри каждом вызове do() генерируется новое число. На каждом шаге цикла выполняется три вызова do().
Что не так?
Офлайн
0
py.user.next
При каждом вызове do() генерируется новое число. На каждом шаге цикла выполняется три вызова do().
import random def do(): r = random.randint(1, 20) return r #i = do() while do() != 15: i = do() print (i) else: print ('Число найдено!')
Офлайн
857
>>> import random >>> >>> def do(): ... r = random.randint(1, 20) ... return r ... >>> res = do() >>> while res != 15: ... print(res) ... res = do() ... else: ... print('Число найдено!') ... 4 10 12 6 12 18 16 8 Число найдено! >>>
Отредактировано py.user.next (Фев. 16, 2017 12:54:29)
Офлайн
61
Или в более разжованном виде что бы ну совсем уже было очевидно!
import random status = True def rnd(): return random.randint(10, 20) count = 0 while status: chislo = rnd() if chislo != 15 or count == 20: count += 1 print(chislo) else: status = False print('Число найдено! ', chislo)
Отредактировано ZerG (Фев. 16, 2017 13:01:09)
Офлайн
0
Огромное всем спасибо, разобрался
Офлайн