Форум сайта python.su
Помогите пожалуйста, в чём моя ошибка?
Условие задачи: Напишите функцию, рассчитывающую расстояние между двумя точками
на плоскости (координаты (x1, y1) и (x2, y2) даны). Вывести результат в терминал
код:
import math
def coordinate():
x2 = 1; x1 = 2; y2 = 5; y1 = 3;
def distance(coordinate):
k = ((x2-x1)**2 + (y2-y1)**2); #Формула расстояния между двумя точками
math.sqrt(k)
print distance(coordinate);
Терминал пишет ошибку:
ramainen@ramainen:~/проекты$ python prog1.py
Traceback (most recent call last):
File “prog1.py”, line 14, in <module>
print distance(coordinate)
File “prog1.py”, line 11, in distance
k = ((x2-x1)**2 + (y2-y1)**2)
NameError: global name ‘x2’ is not defined <—- Не понимаю, у меня же есть x2
Изменил код проги на:
import math
x1 = 1.0; x2 = 3.0; y1 = 3.0; y2 = 5.0
def distance(x1, x2, y1, y2):
math.sqrt((x2-x1)**2 + (y2-y1)**2)
print distance(x1, x2, y1, y2)
теперь терминал пишет:
ramainen@ramainen:~/проекты$ python prog1.py
None
Офлайн
return — есть такое ключевое слово
Офлайн
Андрей СветловСпасибо!
return — есть такое ключевое слово
Офлайн
К чему лишние переменные? Ведь
distance = math.sqrt((x2-x1)**2 + (y2-y1)**2);
return distance;
и
return math.sqrt((x2-x1)**2 + (y2-y1)**2)
одно и тоже..
Офлайн
непонятно зачем вообще здесь функция. ладно бы если ей координаты передавались в качестве аргументов. например
def distance(x1, x2, y1, y2):
return ((x2-x1)**2 + (y2-y1)**2)**0.5
print distance(1, 2, 3, 4)
math.sqrt имхо не оправдан. ну зачем? лишний импорт только.
Офлайн