Найти - Пользователи
Полная версия: Помогите с задачкой!
Начало » Python для новичков » Помогите с задачкой!
1
Volis
Вот сама задача:

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

Поддерживаемые операции: +, -, /, *, 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 )

Что с ним не так?
ZerG
А что с ним не так?
Marlton
У вас кавычки не в ту сторону смотрят
 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 )
old_monty
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', '/'])
Volis
old_monty
VolisУ вас ус отклеился ошибка в выражении
Спасибо
Volis
old_monty
if b == 0 and (c == ‘div’ or ‘mod’ or ‘/’):
Но я сделал по другому. if b == 0 and (c == ‘div’ or с == ‘mod’ orс== ‘/’):
old_monty
Volis
Но я сделал по другому. if b == 0 and (c == ‘div’ or с == ‘mod’ orс== ‘/’):
Это не “по другому”, у вас просто более развернутая (многословная) запись того же самого условия. Конечно, она мне была известна. И конечно, новичкам такую запись легче читать и понимать. Но я все же рекомендую записывать такие условия в форме "element in lst". Это вам пригодится, если будет длинный список, с множеством элементов. И вообще, это ближе к истинному Pythonic style.
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