Найти - Пользователи
Полная версия: Помогите с калькулятором №2
Начало » Python для новичков » Помогите с калькулятором №2
1
SkeT4
 a = input()
f = float(a.replace(',','.'))
b = float(input())
c = input()
if b == 0 and (c == 'div' or 'mod' or '/'):
    print('Деление на 0!')
elif c == '+':
    print(f + b)
elif c == '-':
    print(f - b)
elif c == '*':
    print(f * b)
elif c == '/':
    print(f / b)
elif c == 'mod':
    print(f % b)
elif c == 'div':
    print(f // b)
elif c == 'pow':
    print(f ** b)

При вводных данных:
5
0
- или +

Выводит “Деление на 0!”
При
 if b == 0 and (c == 'div' or 'mod' or '/') and not(c == '-' or '+')
Вот такая штука с mod
 Test input:
5.0
0.0
mod 
Correct output:
Деление на 0!
Your code output:
Error:
Traceback (most recent call last):
  File "jailed_code", line 16, in <module>
    print(f % b)
ZeroDivisionError: float modulo
И вот такая с div
 Traceback (most recent call last):
  File "jailed_code", line 18, in <module>
    print(f // b)
ZeroDivisionError: float divmod()

Само задание для написание калькулятора:
Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам (“первое число” “операция” “второе число”) и выводит результат на экран.

Поддерживаемые операции: +, -, /, *, mod, pow, div, где
mod — это взятие остатка от деления,
pow — возведение в степень,
div — целочисленное деление.

Если выполняется деление и второе число равно 0, необходимо выводить строку “Деление на 0!”.

Обратите внимание, что на вход программе приходят вещественные числа.
AD0DE412
https://www.learnbyexample.org/python-exceptions-try-except/
 a = input()
f = float(a.replace(',','.'))
b = float(input())
c = input()
try:
    if c == '+':
        print(f + b)
    elif c == '-':
        print(f - b)
    elif c == '*':
        print(f * b)
    elif c == '/':
        print(f / b)
    elif c == 'mod':
        print(f % b)
    elif c == 'div':
        print(f // b)
    elif c == 'pow':
        print(f ** b)
except ZeroDivisionError:
    print('Деление на 0!')
except Exception as err:
    print(err)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB