-
[코딩도장] day26. 파이썬 두 점 사이의 거리 구하기IT/파이썬 2020. 9. 19. 23:23
출처 : unsplash ■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit37. 두 점 사이의 거리 구하기
- 37.1 두 점 사이의 거리 구하기
>> 37.1 두 점 사이의 거리 구하기 <<
1. 클래스로 점 구현하기
소스 (two_point.py) 결과 class Point2D :
def __init__(self, x, y) :
self.x = x
self.y = y
p1 = Point2D(x=30, y=20) # 점1
p2 = Point2D(x=60, y=50) # 점2
print('p1: {} {}'.format(p1.x, p1.y))
print('p2: {} {}'.format(p2.x, p2.y))p1: 30 20
p2: 60 502. 피타고라스의 정리로 두 점의 거리 구하기
- 피타고라스 정리(a^2 + b^2 = c^2)에 따라 p1, p2의 거리를 구하기 위해서 선 a와 b의 길이를 구함
소스 (two_point_distance.py) 결과 class Point2D :
def __init__(self, x, y) :
self.x = x
self.y = y
p1 = Point2D(x=30, y=20) # 점1
p2 = Point2D(x=60, y=50) # 점2
# print('p1: {} {}'.format(p1.x, p1.y))
# print('p2: {} {}'.format(p2.x, p2.y))
a = p2.x - p1.x # 선 a의 길이
b = p2.y - p1.y # 선 b의 길이
c = math.sqrt( (a * a) + (b * b) ) # 제곱근 구하기 (import math 필요)
print(c)42.42640687119285 - (a * a)는 pow(a, 2)로 표현 가능함
- 거듭제곱(power) 사용법 : math.pow(값, 지수) /* 값을 지수만큼 거듭제곱한 값을 반환 */
=> (a * a) + (b * b) == math.pow(a, 2) + math.pow(b, 2)
- 파이썬에서 제공하는 거듭제곱 연산자 **를 사용해도 ok
=> (a * a) + (b * b) == (a ** 2) + (b ** 2)
[참고] 절댓값 함수
- 내장 함수 abc 또는 math 모듈의 fabs 함수 사용 (abs = absolute value)
- abs(값) : 정수는 절댓값을 정수로 반환, 실수는 절댓값을 실수로 반환
- math.fabs(값) : 절댓값을 실수로 반환
'IT > 파이썬' 카테고리의 다른 글
[코딩도장] day27. 파이썬 이터레이터 사용하기 - __iter__, __next__, __getitem__ (0) 2020.09.21 [코딩도장] day26. 파이썬 예외 처리 사용하기 - try except, else, finally (0) 2020.09.20 [코딩도장] day26. 파이썬 클래스 상속 사용하기(2/2) - object클래스, 다중 상속, 추상 클래스 (0) 2020.09.19 [코딩도장] day25. 파이썬 클래스 상속 사용하기(1/2) - 클래스 상속, super(), 오버라이딩 (0) 2020.09.19 [코딩도장] day24. 파이썬 클래스 속성과 정적, 클래스 메서드 사용하기 (0) 2020.09.18