Найти - Пользователи
Полная версия: Подскажите плз еще одно
Начало » Центр помощи » Подскажите плз еще одно
1 2
JZ911
Подскажите плз еще одно нужно сделать калькулятор с одной функцией которая принимает 3 аргумента и один с них операция (спасибо)
PEHDOM
для начала попробуйте всеже сами чтото написать,а дальше уже будем смотреть, прошлый раз у вас почти получилось. + укажите какие должны быть операции.
vic57
чем eval() не устраивает?
 >>> eval('45**2')
2025
>>> eval('24**2/67')
8.597014925373134
>>> 
PEHDOM
vic57
чем eval() не устраивает?
дык тут и евал не надо, оно и так посчитает .Видно же что человек учиться в школе/вузе/курсах .Судя по всему сейчас они проходят процедуры/функции, и цель не написать калькулятор, а дать понимание как это работает.
JZ911
]Да, я учуся и мы проходим функции, а это самыйкрутой форум где могут помочь и обяснить
JZ911
 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("Неверный знак операции!")
JZ911
def calc(s = input(“Знак (+,-,*,/): ”,x = float(input(“x=”),y = float(input(“y=”))):
print(“Ноль в качестве знака операции завершит работу программы”)
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(“Неверный знак операции!”)
PEHDOM
И как работает? чето вы со скобками намудрили, у вас куча открывающихся скобок и нехватка закрывающихся, с отступами жопа, но в принципе верной дорогой идете товарищ.
- 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("Неверный знак операции!")
JZ911
или вот
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()
PEHDOM
JZ911
или вот
опять со скобками жопа, незватает закрывающих скобок
+ код нужно вставлять в теги
[code python][/code]
чтобы отступы сохранялись
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