Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 16, 2017 11:18:38

Djonny
Зарегистрирован: 2017-02-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

Я - новичок. Новичок от слова совсем. Изучаю 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)

Офлайн

#2 Фев. 16, 2017 11:28:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

Djonny
Что не так?
При каждом вызове do() генерируется новое число. На каждом шаге цикла выполняется три вызова do().



Офлайн

#3 Фев. 16, 2017 11:42:15

Djonny
Зарегистрирован: 2017-02-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

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 ('Число найдено!')

Для меня важно сейчас понять, как код работает

Офлайн

#4 Фев. 16, 2017 12:49:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

  
>>> 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)

Офлайн

#5 Фев. 16, 2017 13:00:26

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

Или в более разжованном виде что бы ну совсем уже было очевидно!

 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)

Офлайн

#6 Фев. 16, 2017 15:05:46

Djonny
Зарегистрирован: 2017-02-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помощи в работе кода

Огромное всем спасибо, разобрался

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version