Найти - Пользователи
Полная версия: Задачка на функцию
Начало » Центр помощи » Задачка на функцию
1
ramainen
Помогите пожалуйста, в чём моя ошибка?
Условие задачи: Напишите функцию, рассчитывающую расстояние между двумя точками
на плоскости (координаты (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 — есть такое ключевое слово
ramainen
Андрей Светлов
return — есть такое ключевое слово
Спасибо!
Теперь работает
код:
import math

def function():
x1 = 1; x2 = 3; y1 = 4; y2 = 6;
distance = math.sqrt((x2-x1)**2 + (y2-y1)**2);
return distance;

print function();
ramses
К чему лишние переменные? Ведь
distance = math.sqrt((x2-x1)**2 + (y2-y1)**2);
return distance;
и
return math.sqrt((x2-x1)**2 + (y2-y1)**2)
одно и тоже..
kyzic
непонятно зачем вообще здесь функция. ладно бы если ей координаты передавались в качестве аргументов. например
def distance(x1, x2, y1, y2):
return ((x2-x1)**2 + (y2-y1)**2)**0.5
print distance(1, 2, 3, 4)
math.sqrt имхо не оправдан. ну зачем? лишний импорт только.
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