Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.01.2018, 14:52   #1
Stanluuu
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 11
Репутация: 10
Вопрос Цикл не заканчивается

Товарищи! Код состоит из 10 циклов и столкнулся с такой проблемой:
В конце каждого цикла стоит "break" по логике я считал, что он останавливает цикл и не продолжает следующие, но вышло ни так. Мне необходимо, чтобы, если какой то из циклов выполнялся, следующие не выполнялись, а выводилось сообщение для для выхода нажмите "Enter" (пробовал сделать во втором цикле, но видимо "input("\n\nДля выхода нажмите Enter")" не выполняет то что нужно), всю голову сломал понять не могу в чем проблема.
Код ниже.
Код:

import random
        
tries = 1
a=random.randint(26, 75)

print("\nВы загадали число: ", a, "?")


otv1=input("\t\n>")
while True:
    if otv1== "no":
        a=a-25
        print("\t\nтогда: ", a)
    elif otv1== "yes":
        a=a+25
        print("\t\nтогда: ", a)
    elif otv1== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
        print("\t\tКоличество затраченных попыток: ", tries)
    else:
        print("\t\nhiherra ")
    break

otv2=input("\t\n>")
while True:
    if otv2== "no":
        a=a-20
        print("\t\nтогда: ", a)
    elif otv2== "yes":
        a=a+20
        print("\t\nтогда: ", a)
    elif otv2== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
        print("\t\tКоличество затраченных попыток: ", tries+1)
        input("\n\nДля выхода нажмите Enter")
    break   
    

otv3=input("\t\n>")
while True:
    if otv3== "no":
        a=a-15
        print("\t\nтогда: ", a)
    elif otv3== "yes":
        a=a+15
        print("\t\nтогда: ", a)
    elif otv3== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
        print("\t\tКоличество затраченных попыток: ", tries+1)
    else:
        print("\t\nhiherra ")
    break    

otv4=input("\t\n>")
while True:
    if otv4== "no":
        a=a-8
        print("\t\nтогда: ", a)
    elif otv4== "yes":
        a=a+8
        print("\t\nтогда: ", a)
    elif otv4== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv5=input("\t\n>")
while True:
    if otv5== "no":
        a=a-5
        print("\t\nтогда: ", a)
    elif otv5== "yes":
        a=a+5
        print("\t\nтогда: ", a)
    elif otv5== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv6=input("\t\n>")
while True:
    if otv6== "no":
        a=a-3
        print("\t\nтогда: ", a)
    elif otv6== "yes":
        a=a+3
        print("\t\nтогда: ", a)
    elif otv5== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv7=input("\t\n>")
while True:
    if otv7== "no":
        a=a-2
        print("\t\nтогда: ", a)
    elif otv7== "yes":
        a=a+2
        print("\t\nтогда: ", a)
    elif otv7== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv8=input("\t\n>")
while True:
    if otv8== "no":
        a=a-1
        print("\t\nтогда: ", a)
    elif otv8== "yes":
        a=a+1
        print("\t\nтогда: ", a)
    elif otv8== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv9=input("\t\n>")
while True:
    if otv9== "no":
        a=a-1
        print("\t\nтогда: ", a)
    elif otv9== "yes":
        a=a+1
        print("\t\nтогда: ", a)
    elif otv9== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

otv10=input("\t\n>")
while True:
    if otv10== "no":
        a=a-1
        print("\t\nтогда: ", a)
    elif otv10== "yes":
        a=a+1
        print("\t\nтогда: ", a)
    elif otv10== "ok":
        print("\t\nтогда !!!!!!!!!!: ", a)
    else:
        print("\t\nhiherra ")
    break

Stanluuu вне форума   Ответить с цитированием
Старый 12.01.2018, 15:38   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,600
Репутация: 5213
По умолчанию

Цитата:
Сообщение от Stanluuu Посмотреть сообщение
Код состоит из 10 циклов
зачем столько? чем они отличаются? почему нельзя их объединить в один?


Цитата:
Сообщение от Stanluuu Посмотреть сообщение
В конце каждого цикла стоит "break" по логике я считал, что он останавливает цикл и не продолжает следующие, но вышло ни так.
а это не важно, что Вы считали. Оператор работает так, как это описано в документации - прерывает текущий и цикл и передаёт управление дальше. Если у Вас дальше идёт цикл, то он, разумеется, выполняется!

Ваша проблема в том, что Вы неверно строите логику приложения.
Вы вообще нарисовали блок-схему, прежде чем писать код?
Если нет алгоритма, то никакие "break" не помогут.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 15.01.2018, 09:08   #3
Stanluuu
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
зачем столько? чем они отличаются? почему нельзя их объединить в один?



а это не важно, что Вы считали. Оператор работает так, как это описано в документации - прерывает текущий и цикл и передаёт управление дальше. Если у Вас дальше идёт цикл, то он, разумеется, выполняется!

Ваша проблема в том, что Вы неверно строите логику приложения.
Вы вообще нарисовали блок-схему, прежде чем писать код?
Если нет алгоритма, то никакие "break" не помогут.
Хорошо, а так? Все равно не заканчивается цикл...
Код:

import random
        
tries = 1
a=random.randint(1, 100)

print("\nВы загадали число: ", a, "?")

otv=input("\t\n>")
while otv!=True:
    if otv== "down":
        a=(a-1)//2
        print("\t\nтогда: ", a)
    if otv=="up":
        a=(a+100)//2
        print("\t\nтогда: ", a)
    elif otv=="ok":
        print("\t\nтогда: ", a)
    else:
        print("\t\ndont be: ")
input("Enter for exit")

Stanluuu вне форума   Ответить с цитированием
Старый 15.01.2018, 09:42   #4
Stanluuu
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 11
Репутация: 10
Восклицание Цикл не заканчивается

Товарищи программа на Python, подскажите пожалуйста, в чем ошибка, идея в том, что загадывается рандомное число, ПК спрашивает "это число загадано?", дальше должен быть цикл, вроде пользователь пишет ok(да), up(больше), down(меньше), и выполняются действия до того момента пока пользователь не введет "OK", у меня цикл выполняет одно действие и не переходит дальше к началу

Код:

import random
        
tries = 1
a=random.randint(1, 100)

print("\nВы загадали число: ", a, "?")

otv=input("\t\n>")
while otv!=True:
    if otv== "down":
        a=(a-1)//2
        print("\t\nтогда: ", a)
    if otv=="up":
        a=(a+100)//2
        print("\t\nтогда: ", a)
    elif otv=="ok":
        print("\t\nтогда: ", a)
    else:
        print("\t\ndont be: ")
input("Enter for exit")

Stanluuu вне форума   Ответить с цитированием
Старый 15.01.2018, 11:25   #5
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,308
Репутация: 813

skype: aleksandr.gryb
По умолчанию

Код:

import random
        
tries = 1
a = random.randint(1, 100)

print("\nВы загадали число: ", a, "?")

otv=input("\t\n>")
while otv != "ok":
    if otv== "down":
        a=(a-1)//2
        print("\t\nтогда: ", a)
    elif otv=="up":
        a=(a+100)//2
        print("\t\nтогда: ", a)
    elif otv=="ok":
        print("\t\nтогда: ", a)
    else:
        print("\t\ndont be: ")
    otv=input("\t\n>")
input("Enter for exit")

__________________
Mailto: media.project@ukr.net
"спасибо" принимаются на webmoney: R676842461689, Z243088649038, U164738001305; AdvancedCash: U853633661253, E181662999107; ПриватБанк.UA
Aleksandr H. на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заканчивается класс? Cuprum5 Python 4 16.08.2017 11:08
Дан набор слов, разделенных ";" набор заканчивается ":".Определить ,сколько в нем слов,заканчивается буквой а _Алексей_ Помощь студентам 1 29.04.2012 15:21
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 02:34


09:05.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru