16. 파이썬 - Style

2024. 6. 16. 19:393층 1구역 - 개발의 장/Python 프로그래밍 핵심 개념

1. 서론

버거를 주문할 시에 혜택 차원에서 음료수 및 감자튀김을 받을 수 있다.

VS 버거를 주문하면 음료수와 감자튀김은 서비스다.

 

둘이 다른 문장이지만 결론은 '햄버거를 주문하면 음료수와 감자튀김은 무료' 라는 것이다.

 

이렇게 같은 뜻의 말을 사람마다 다르게 표현한다. 각자 '스타일'이 존재한다.

 

코드를 작성함에 있어서도 스타일이 있다.

여기서 말하는 코드의 스타일은 >> 이해하기 좋은 코드 == 좋은 스타일을 가진 코드 라는 얘기이다.

 

원의 넓이와 원의 둘레 구하는 프로그램을 여러가지 코드를 사용하여 나타내 보자.

 

2. 본론

먼저 원의 둘레와 넓이를 구하는 공식은?

 

원의 둘레 == 2 * 원주율(==3.14) * 반지름

원의 넓이 == 원주율(3.14) * 반지름 * 반지름(반지름의 제곱 == 반지름^2)

이다.

 

첫번째 코드를 보자.

print(6.28*4)  # >> 원의 둘레
print(3.14*4*4)  # >> 원의 넓이
print(6.28*8)  # >> 원의 둘레
print(3.14*8*8)  # >> 원의 넓이

 

간단하게 원의 둘레와 원의 넓이를 나타낼 수 있다. 그런데 남들에게 보여줬을 때 위 코드가 원의 둘레와 원의 넓이를 구하는 코드라는 것을 알 수 있을까?? 게다가 반지름이 바뀌면 하나하나 찾아서 수정해주어야 한다.

 

조금만 손을 보자.

 

a=3.14
b=4
print(2*a*b)
print(a*b*b)
b=8
print(2*a*b)
print(a*b*b)

 

변수를 추가하여 좀 더 수정하기 용이하게 코드를 작성했다. 근데 이것도 남에게 보여줬을 때,

무엇을 의도한건지 알 수가 없을 것이다. 게다가 변수가 무엇을 나타내는지도 모르겠다.

 

a=3.14  # 원주율(파이)
b=4  # 원의 반지름
print(2*a*b)
print(a*b*b)
b=8  # 원의 반지름
print(2*a*b)
print(a*b*b)

 

코멘트를 달아서 각각의 변수가 무엇을 나타내는지 표시해주었다. 이제 남들에게 보여줘도

'아 이게 원의 둘레, 넓이 구하는 거구나' 라고 눈치빠른 사람들은 알 정도가 되었다.

 

근데 print()안에 변수만 봤을 때, 무엇을 나타내는지 알수 없다. 이번엔 변수 이름을 바꿔보자.

 

pi=3.14  # 원주율(파이)
radius=4  # 원의 반지름
print(2*pi*radius)
print(pi*radius*radius)
radius=8  # 원의 반지름
print(2*pi*radius)
print(pi*radius*radius)

 

이제 변수가 원주율과 반지름을 나타내는 구나. 확실하게 알 수 있다.

근데 이전 시간에 원주율은 상수라고 했었다. 상수는 대문자로 나타낼 수 있다.

 

PI=3.14  # 원주율(파이)
radius=4  # 원의 반지름
print(2*PI*radius)
print(PI*radius*radius)
radius=8  # 원의 반지름
print(2*PI*radius)
print(PI*radius*radius)

 

이제 원주율이 상수라는 것을 알 수 있다.

근데 따닥따닥 붙어있으니 좀 그렇다. 가독성 좋게 스페이스와 엔터키를 활용해 보자.

 

PI = 3.14 # 원주율(파이)

radius = 4 # 원의 반지름
print(2 * PI * radius)
print(PI * radius * radius)

radius = 8 # 원의 반지름
print(2 * PI * radius)
print(PI * radius * radius)

 

이처럼 빈 공간이 있는 것을 화이트 스페이스라고 한다.

화이트 스페이스를 잘 이용하면 보기 좋은 코드를 작성할 수 있을 것이다.

 

이번엔 함수를 활용해보자.

 

PI = 3.14  # 원주율(파이)


def calculate_circumference(r):
    return 2 * PI * r


def calculate_area(r):
    return PI * r * r


radius = 4  # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))

radius = 8  # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))

 

여기서 약간의 배려를 첨가해보자.

 

PI = 3.14  # 원주율(파이)


# 반지름이 r인 원의 둘레 계산
def calculate_circumference(r):
    return 2 * PI * r


# 반지름이 r인 원의 넓이 계산
def calculate_area(r):
    return PI * r * r


radius = 4  # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))

radius = 8  # 반지름
print(calculate_circumference(radius))
print(calculate_area(radius))

 

이렇게 코멘트를 추가해줄 수도 있겠다.

 

3. 결론