Форум сайта python.su
Подскажите плз еще одно нужно сделать калькулятор с одной функцией которая принимает 3 аргумента и один с них операция (спасибо)
Офлайн
для начала попробуйте всеже сами чтото написать,а дальше уже будем смотреть, прошлый раз у вас почти получилось. + укажите какие должны быть операции.
[code python][/code]
Отредактировано PEHDOM (Ноя. 2, 2017 23:25:32)
Офлайн
чем eval() не устраивает?
>>> eval('45**2') 2025 >>> eval('24**2/67') 8.597014925373134 >>>
Офлайн
vic57дык тут и евал не надо, оно и так посчитает .Видно же что человек учиться в школе/вузе/курсах .Судя по всему сейчас они проходят процедуры/функции, и цель не написать калькулятор, а дать понимание как это работает.
чем eval() не устраивает?
[code python][/code]
Офлайн
]Да, я учуся и мы проходим функции, а это самыйкрутой форум где могут помочь и обяснить
Офлайн
calc(s = input("Знак (+,-,*,/): ",x = float(input("x="),y = float(input("y="))): print("Ноль в качестве знака операции завершит работу программы") print("%.2f" % (x+y)) if s == '-': print("%.2f" % (x-y)) if s == '*': print("%.2f" % (x*y)) elif s == '/': if y != 0: print("%.2f" % (x/y)) else: print("Деление на ноль!") else: print("Неверный знак операции!")
Офлайн
Офлайн
И как работает? чето вы со скобками намудрили, у вас куча открывающихся скобок и нехватка закрывающихся, с отступами жопа, но в принципе верной дорогой идете товарищ.
- x = float(input(“x=”)) в аргументе ИМХО это плохая практика, оно отлично сработает при вызове функции без аргументов, но при передаче аргументов могут возникнуть проблемы, лучше преобразовывать типы уже непосредственно внутри функции.
-Нехватает проверки на сумму, тоесть оно сначала выведет сумму, а потом уже результат другой операции или “Неверный знак операции!”
- print(“Ноль в качестве знака операции завершит работу программы”) вообще ни к селу ни к городу, оно не сработает. Вы откудато это списали не понимая что делает программа. Если уж так хочеться туды всунуть ноль, то както так:
def calc( x = input("x= "), y = input("y= "), s = input("Знак (+,-,*,/,0) \nНоль завершит работу программы:")): if s == '0': return None x = float(x) y = float(y) if s == '+': print("%.2f" % (x+y)) elif s == '-': print("%.2f" % (x-y)) elif s == '*': print("%.2f" % (x*y)) elif s == '/': if y != 0: print("%.2f" % (x/y)) else: print("Деление на ноль!") else: print("Неверный знак операции!")
[code python][/code]
Отредактировано PEHDOM (Ноя. 3, 2017 10:11:57)
Офлайн
или вот
def calc (a=float(input(“Введите первое число \n”),b=float(input(“Введите второе число \n”),c=input(“Введите знак \n”)):
if c=='+':
print(a+b)
if c=='-':
print(a-b)
if c=='*':
print(a*b)
if c=='/':
print(a/b)
calc()
Офлайн
JZ911опять со скобками жопа, незватает закрывающих скобок
или вот
[code python][/code]
[code python][/code]
Офлайн