Форум сайта python.su
0
Вот сама задача:
Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам (“первое число” “операция” “второе число”) и выводит результат на экран.
Поддерживаемые операции: +, -, /, *, mod, pow, div, где
mod — это взятие остатка от деления,
pow — возведение в степень,
div — целочисленное деление.
Если выполняется деление и второе число равно 0, необходимо выводить строку “Деление на 0!”.
Обратите внимание, что на вход программе приходят вещественные числа.
Вот мой код:
a = float(input())
b = float(input())
c = input()
if b == 0 and (c == ‘div’ or ‘mod’ or ‘/’):
print(“Деление на 0!”)
elif c == ‘+’:
print(a + b)
elif c == ‘-’:
print(a - b)
elif c == ‘*’:
print(a * b)
elif c == ‘/’:
print(a / b)
elif c == ‘mod’:
print (a % b)
elif c == ‘div’:
print(a // b)
elif c == ‘pow’:
print (a ** b )
Что с ним не так?
Офлайн
61
А что с ним не так?
Офлайн
0
У вас кавычки не в ту сторону смотрят 
a = float(input()) b = float(input()) c = input() if b == 0 and (c == 'div' or 'mod' or '/'): print('Деление на 0!') elif c == '+': print(a + b) elif c == '-': print(a - b) elif c == '*': print(a * b) elif c == '/': print(a / b) elif c == 'mod': print (a % b) elif c == 'div': print(a // b) elif c == 'pow': print (a ** b )
Офлайн
20
Volis
У вас ус отклеился
ошибка в выражении
c == 'div' or 'mod' or '/'
>>> >>> c = 'foo' >>> if c == 'div' or 'mod' or '/': ... print("с == 'div' or 'mod' or '/'") ... c == 'div' or 'mod' or '/' >>>
if b == 0 and (c in ['div', 'mod', '/'])
Офлайн
0
old_montyСпасибо
VolisУ вас ус отклеился ошибка в выражении
Офлайн
0
old_montyНо я сделал по другому. if b == 0 and (c == ‘div’ or с == ‘mod’ orс== ‘/’):
if b == 0 and (c == ‘div’ or ‘mod’ or ‘/’):
Офлайн
20
VolisЭто не “по другому”, у вас просто более развернутая (многословная) запись того же самого условия. Конечно, она мне была известна. И конечно, новичкам такую запись легче читать и понимать. Но я все же рекомендую записывать такие условия в форме "element in lst". Это вам пригодится, если будет длинный список, с множеством элементов. И вообще, это ближе к истинному Pythonic style.
Но я сделал по другому. if b == 0 and (c == ‘div’ or с == ‘mod’ orс== ‘/’):
Офлайн