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

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

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

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

Решаю задачи на 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 в 15:17.
nobody_32 вне форума   Ответить с цитированием
Старый 20.05.2018, 11:05   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,780
Репутация: 2126
По умолчанию

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

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

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

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

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Может кто объяснить в чем ошибка?, ошибок не выдает, но не компилится Borland++ 3.1 Школьnick Общие вопросы C/C++ 3 26.02.2018 18: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


20:50.


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

RusProfile.ru


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