Задать вопрос
@Ezio1476
Начинающий программист.

В чем ошибка в моем коде?

В Питоне, когда пишеш знак минус в вычислениях то оно отнимает, в чем может быть ошибка ?
Вот код:

a=float(input('Введіть перше число'))
b=float(input('Введіть друге число'))
x=input('Введіть символ')
if "+":
   p=a+b
if "-":
   p=a-b
if "*":
   p=a*b
if "/":
   p=a/b
else:
   print('Не вірна дія')
print(p)
input()


Вот условие задачи:
По заданному символа арифметической операции выполнить соответствующее действие над двумя действительными операндами.
  • Вопрос задан
  • 244 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
@psvworks
может надо писать
if x == '+' ...
if x == '-' ...
if x == '*' ...
if x == '/' ...
Ответ написан
@Hrabryi
У Вас неправильная запись условия if.
Условия if "+" будет всегда True, т.к. строка не нулевой длины в питоне - True. Нужно переписать условия, а также лучше использовать конструкцию if - elif, при первом найденном совпадении остальные условия проверяться не будут - т.к. в этом нет смысла.
if x=="+":
   p=a+b
elif x=="-":
   p=a-b
elif x=="*":
   p=a*b
elif x=="/":
   p=a/b
else:
   print('Не вірна дія')
print(p)
input()
Ответ написан
Комментировать
a=float(input('Введіть перше число'))
b=float(input('Введіть друге число'))
x=input('Введіть символ')
if "+" in x:
p=a+b
if "-" in x:
p=a-b
if "*" in x:
p=a*b
if "/" in x:
p=a/b
else:
print('Не вірна дія')
print(p)
input()
можно и так
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Вы не написали версию питона. Если вторая - то там есть разница между input и raw_input. Во втором питоне input выполняет ввод выражения, а raw_input() - читает символы "как есть".
Можно сделать все гораздо проще:
>>> a=float(input('Введіть перше число:  '))
Введіть перше число:  7
>>> b=float(input('Введіть друге число:  '))
Введіть друге число:  3
>>> x=raw_input('Арифметична дiя:  ')
Арифметична дiя:  -
>>> if x in ('+','-','*','/'):
...      print(eval('{a}{expr}{b}'.format(a=a, b=b, expr=x)))
...
4.0

И в условиях вы упустили что сравнивать надо переменную x с символами, а не просто проверять символы на True - у вас условие не отработает корректно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы