Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2017 22:06:55

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

Подскажите плз еще одно нужно сделать калькулятор с одной функцией которая принимает 3 аргумента и один с них операция (спасибо)

Офлайн

#2 Ноя. 2, 2017 23:23:57

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

для начала попробуйте всеже сами чтото написать,а дальше уже будем смотреть, прошлый раз у вас почти получилось. + укажите какие должны быть операции.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 2, 2017 23:25:32)

Офлайн

#3 Ноя. 2, 2017 23:46:28

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Подскажите плз еще одно

чем eval() не устраивает?

 >>> eval('45**2')
2025
>>> eval('24**2/67')
8.597014925373134
>>> 

Офлайн

#4 Ноя. 3, 2017 00:20:06

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

vic57
чем eval() не устраивает?
дык тут и евал не надо, оно и так посчитает .Видно же что человек учиться в школе/вузе/курсах .Судя по всему сейчас они проходят процедуры/функции, и цель не написать калькулятор, а дать понимание как это работает.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Ноя. 3, 2017 08:58:23

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

]Да, я учуся и мы проходим функции, а это самыйкрутой форум где могут помочь и обяснить

Офлайн

#6 Ноя. 3, 2017 09:19:11

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

 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("Неверный знак операции!")

Офлайн

#7 Ноя. 3, 2017 09:20:11

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

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(“Неверный знак операции!”)

Офлайн

#8 Ноя. 3, 2017 10:08:10

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

И как работает? чето вы со скобками намудрили, у вас куча открывающихся скобок и нехватка закрывающихся, с отступами жопа, но в принципе верной дорогой идете товарищ.
- 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)

Офлайн

#9 Ноя. 3, 2017 10:11:33

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

или вот
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()

Офлайн

#10 Ноя. 3, 2017 10:18:31

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Подскажите плз еще одно

JZ911
или вот
опять со скобками жопа, незватает закрывающих скобок
+ код нужно вставлять в теги
[code python][/code]
чтобы отступы сохранялись



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version