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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2018, 09:19   #1
nobody_32
 
Регистрация: 10.03.2018
Сообщений: 4
По умолчанию Ошибка с обработкой ошибок

Решаю задачи на Python. Задача следующая:

Цитата:
Написать функцию arithmetic, принимающую 3 аргумента: первые 2 - числа, третий - операция, которая должна быть произведена над ними. Если третий аргумент +, сложить их; если —, то вычесть; * — умножить; / — разделить (первое на второе). В остальных случаях вернуть строку "Неизвестная операция".
Код такой:

Код:
import sys

def ariphmetic(arg1,arg2,operation):
    try:
        arg1 = float(arg1)
        arg2 = float(arg2)
    except ValueError as err:
        print(err)
    if operation == '+':
        result = arg1 + arg2
    elif operation == '+':
        result = arg1 - arg2
    elif operation == '*':
        result = arg1 * arg2
    elif operation == '/':
        result = arg1 / arg2
    else:
        result = 'Incorrect operation!'
    print(result)

arg1 = input('Enter Value 1: ')
arg2 = input('Enter Value 1: ')
operation = input('Enter operation in ["+", "-", "*", "/"]: ')
ariphmetic(arg1, arg2, operation)
Ошибка при введении неверного знака(исправил, решено).

Обработчик ошибок при введении аргументов не-float не работает... все, решено, работает...
Цитата:
Enter Value 1: o
Enter Value 1: a
Enter operation in ["+", "-", "*", "/"]: 1
could not convert string to float: 'o'
Incorrect operation!
Как это исправить?

Последний раз редактировалось nobody_32; 20.05.2018 в 14:17.
nobody_32 вне форума Ответить с цитированием
Старый 20.05.2018, 10:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от nobody_32 Посмотреть сообщение
Ошибка при введении неверного знака:
Ну так переведите и посмотрите на вашу функцию.

Цитата:
Сообщение от nobody_32 Посмотреть сообщение
Да и обработчик ошибок при введении аргументов не-float не работает.
Как это исправить?
Что значит не работает? Вы же в курсе, что float() конвертирует параметр в float?
p51x вне форума Ответить с цитированием
Старый 20.05.2018, 14:15   #3
nobody_32
 
Регистрация: 10.03.2018
Сообщений: 4
Счастье

p51x, спасибо, первую проблему решил. И ошибки он обрабатывает, просто как сделать, чтобы при неверном вводе числа, он предлагал ввести его еще раз? Это нужно делать вне функции ariphmetic?
nobody_32 вне форума Ответить с цитированием
Старый 20.05.2018, 15:05   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Для начала определить и сформулировать, что значит "неверный ввод числа".
p51x вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Может кто объяснить в чем ошибка?, ошибок не выдает, но не компилится Borland++ 3.1 Школьnick Общие вопросы C/C++ 3 26.02.2018 17:16
Где ошибка? При билдинге ошибок 0, но при запуске вылетает ошибка. Visual C nikitabool Помощь студентам 0 08.01.2014 17:19
Поиск ошибок, определить в какой из ячеек ошибка KaSS Microsoft Office Excel 4 07.09.2013 20:08
Возможен ли отлов ошибок "чужих" программ без скана экрана на предмет окон-ошибок? Человек_Борща Общие вопросы Delphi 4 21.04.2011 00:18