Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Товарищи! Код состоит из 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, 14:38   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

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


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

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

Цитата:
Сообщение от 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, 08:42   #4
Stanluuu
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 11
Восклицание Цикл не заканчивается

Товарищи программа на 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, 10:25   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
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")
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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