Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2018 11:30:00

achilles175
Зарегистрирован: 2018-07-12
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Возвращение нескольких значений функции

Возникла такая проблема:Не получается вывести текст. Из-за обращения к функции выражение ‘y=%.1fx+%.1f’ % (k,b) игнорируется.Каков принцип вывода и как это исправить?Заранее спасибо!

def number1():
x1=float(input('x1 '))
y1=float(input('y1 '))
x2=float(input('x2 '))
y2=float(input('y2 '))
if x1==x2:
return 'y=inf'
else:
k=(y1-y2)/(x1-x2)
b=y1-k*x1
if b==0:
return 'y=%.1fx' %(k)
else:
return 'y=%.1fx+%.1f' % (k,b) , number1()
print (number1())

Отредактировано achilles175 (Июль 12, 2018 13:27:54)

Офлайн

#2 Июль 12, 2018 13:07:07

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Возвращение нескольких значений функции

код нужно оформлять в теги code. Отредактируйте ваше сообщение.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 12, 2018 15:31:02

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2682
Репутация: +  182  -
Профиль   Отправить e-mail  

Возвращение нескольких значений функции

Не надо получать данные внутри функций, это делает её недетерминированной. Вот как надо делать:

 def number1(x1,y1,x2,y2):
	if not x1 == x2:
		k = (y1-y2)/(x1-x2)
		b = y1-k*x1
		if b:
			return 'y=%.1fx+%.1f' % (k,b)
		return 'y=%.1fx' %(k)
	return 'y=inf'
  
while True:
	print(number1(
		float(input('x1 ')),
		float(input('y1 ')),
		float(input('x2 ')),
		float(input('y2 '))))



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Июль 12, 2018 20:35:12)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version