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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2020, 09:16   #1
Lassa
Новичок
Джуниор
 
Регистрация: 01.05.2020
Сообщений: 1
Восклицание В чем ошибка?(Простая программа)

Здравствуйте, я только начал изучать Python и не могу понять в чём ошибка. Хочется сделать так, чтобы в консоли после выполнения условия программа начиналась заново, а получается так что у меня просто бесконечно выводит одно и тоже.(из print())
Код:
def A(x,y):
    while True:
        if x == y:
            print(x, "равно", y)
        elif x > y:
            print("x--Максимальное")
        else:
            print("y--Максимальное")
a = int(input("Первое число: "))
b = int(input("Второе число: "))
A(a,b)
Помогите, пожалуйста, буду вам благодарен.
А еще если не сложно, подскажите как делать программы, которые будут повторяться лучше чем просто через while...
Lassa вне форума Ответить с цитированием
Старый 02.05.2020, 10:35   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Вам следует повнимательнее разобраться с циклами.
В вашем цикле (бесконечном, поскольку условие цикла True) нет условия завершения.
Назначение вашей функции - вывести сообщение.
Для организации циклического ввода цикл надо писать в теле программы, а не в функции.
Код:
def A(x,y):
    if x == y:
        print(x, "равно", y)
    elif x > y:
        print("x--Максимальное")
    else:
        print("y--Максимальное")

while True:
     try:   # это для обработки исключений, которые могут возникнуть при неправильном вводе
        a = int(input("Первое число: "))
        b = int(input("Второе число: "))
     except ValueError:  # ошибка преобразования.
                                    # Введено не целое, например, символ или вещественное
        break   # это позволит завершить программу при неправильном вводе
     A(a,b)
print('Работа программы завершилась.')
В код добавлена обработка исключения. Почитайте.
Поскольку циклическую работу программы надо завершать, то это можно сделать через закрытие самой среды, например, IDLE, в самой среде (Sheel - Restart shell), или предусмотреть завершение программы в её коде.
В примере при вводе символа или вещественного числа (не целого) произойдёт исключение при преобразовании типа (функция int()). Управление будет передано блоку except, где выполнится команда break - покинуть цикл.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая программа Vika2016 PHP 4 30.10.2016 14:39
Простая ошибка Oktober Фриланс 6 10.06.2015 19:19
программа очень простая, но у меня вылазит ошибка при запуске и ничего на экран не выводит nati_94 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 25.03.2013 01:20
самая простая программа - ?ошибка? =. Katus Общие вопросы C/C++ 3 30.04.2012 20:40
Простая программа russian-stalker Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 27.11.2010 22:52