[코드몬스터랩] 아무도 이해하지 못하는 파이썬 One-Liners를 작성하지 마세요 - 파주 운정 코딩 교육

Don’t Write Python One-Liners That Nobody Understands
아무도 이해하지 못하는 파이썬 One-Liners를 작성하지 마세요
이걸 배우고 나면 후회하지 않을 것입니다!!!!
무조건 파이썬 한 줄짜리 코드를 작성하는 것을 반대하지는 않습니다. 하지만 때로는 코드를 읽고 이해하기 매우 어렵게 만들기도 합니다.
그리고 몇 주 후에 작성한 코드를 이해하지 못할 때도 있습니다.

종종 한 줄짜리 글은 우아하고 짧고 재미있어 보이기 때문에 유혹적일 수 있습니다. 하지만 나중에 디버깅하려고 하면 어떤 로직을 작성했는지 이해할 수 없는 경우가 있기 때문에 상황이 더 나빠질 수 있습니다.
간결한 코드보다는 항상 간단한 코드를 우선시하세요.
모든 것을 자세히 이해합시다.
One-Liners 문제
1. 가독성이 떨어질 수 있습니다
우리가 작성한 코드는 다른 사람이 읽는 경우가 가장 많습니다. 따라서 누구나 쉽게 이해할 수 있도록 코드를 단순하게 유지하세요. 한 줄에 여러 연산을 한 번에 결합하는 경우, 여러분은 물론 다른 사람도 이해하기 매우 어려울 것입니다.
풀어야 할 퍼즐처럼 느껴질 것입니다.
예를 들어봅시다.
result = [x**2 for x in range(20) if x % 2 == 0]
보시다시피 간결합니다. 범위를 반복한 다음 숫자가 짝수인지 홀수인지 확인한 다음 숫자를 제곱하는 세 가지 작업을 한 번에 수행합니다.
하지만 이를 분할하면... 더 명확해집니다.
squares = []
for x in range(20):
if x % 2 == 0:
squares.append(x**2)

2. 디버깅은 악몽이 될 것입니다
한 줄에 여러 가지 작업을 수행하면 어디가 잘못되었는지 파악하기가 매우 어려울 것입니다.
예를 들어 이 한 줄짜리 코드를 디버깅하려고 한다고 가정해 봅시다.
result = {key: value for key, value in zip(keys, values) if key.startswith('a') and value > 10}
이 경우 문제가 어디에 있는지 파악하기 어렵기 때문에 디버깅이 매우 어렵습니다. zip() 또는 startswith() 조건에 문제가 있을 수 있습니다.
그러나 우리는 쉽게 이해할 수 없습니다.
3. 지난 코드를 이해할 수 없다
일주일, 한 달, 1년 전에 작성했던 코드를 다시 보면 이해하기 어려워집니다. 자신이 적용한 논리를 이해하기 어려울 것입니다.

How to avoid these one-liners
이러한 one-liners을 피하는 방법
이러한 시나리오를 피할 수 있는 방법을 설명하겠습니다.
1. 로직을 세분화하여 단순화
로직을 여러 줄로 작성하면 이해하고 디버깅하기 쉬워집니다.
따라서 이렇게 작성하는 대신
filtered_square = [x**2 for x in numbers if x > 0 and x % 2 == 0]
이렇게 작성합니다.
positive_numbers = [x for x in numbers if x > 0]
even_numbers = [x for x in positive_numbers if x % 2 == 0]
squares = [x**2 for x in even_numbers]
2. 변수에 설명이 포함된 이름을 사용하세요
변수의 이름을 X나 Y와 같은 식으로 짓지 말고 좀 더 명확하게 지으세요. 변수에 무엇이 저장되어 있는지 설명하세요.
예를 들어 다음과 같이 작성하는 대신,
result = sum([x for x in data if x > threshold])
쓰기.
filtered_values = [value for value in data if value > threshold]
total = sum(filtered_values)
3. 코드에 주석 달기
여러 연산을 결합하는 한 줄짜리 코드를 작성해야 한다면 주석을 추가하여 설명하세요. 그러면 누가 읽더라도 쉽게 이해할 수 있습니다.
def is_valid_number(x):
return x > 0 and x % 2 == 0
def square_number(x):
return x**2
result = [square_number(x) for x in numbers if is_valid_number(x)]
하지만 분할하여 간단하게 만드는 것이 더 좋습니다.

4. 함수 사용 시도하기
어떤 논리가 너무 많이 반복되는 경우 이 논리에 대한 함수를 만드세요.
예를 들어,
def is_valid_number(x):
return x > 0 and x % 2 == 0
def square_number(x):
return x**2
result = [square_number(x) for x in numbers if is_valid_number(x)]
5. 중첩된 comprehension는 피하세요
우리는 종종 작업에 중첩된 comprehension을 사용합니다. 이렇게 하지 마세요.
matrix = [[x*y for y in range(5)] for x in range(5)]
인상적으로 보이지만 초보자 같은 사람에게는 혼란스러울 수 있습니다. 따라서 이렇게 작성하세요.
matrix = []
for x in range(5):
row = []
for y in range(5):
row.append(x * y)
matrix.append(row)
6. 오류를 신중하게 처리하세요
전체 로직을 한 줄에 적용하려고 하면 오류 처리에 신경 쓰지 않게 됩니다. 그냥 무시해버립니다.
예를 들어 다음과 같이 작성합니다.
result = [1 / x for x in numbers if x != 0]
하지만 숫자가 아닌 값이 포함된 경우에는 어떻게 될까요? 이 오류를 처리하는 메커니즘은 적용되지 않습니다.
따라서 이렇게 하세요.
results = []
for x in numbers:
try:
if x != 0:
results.append(1 / x)
except TypeError:
pass
따라서 다음에 코드를 작성할 때는 일주일 또는 한 달 후에 이 코드를 이해할 수 있는지 스스로에게 물어보세요.

[코드몬스터랩] 상호 의존성을 기반으로 관계를 구축하는 방법 - 파주 운정 코딩 교육
How to Build a Relationship Based on Interdependence상호 의존성을 기반으로 관계를 구축하는 방법 우리 대부분은 특히 연애 관계에서 다른 사람과의 연결을 중요하게 생각합니다. 사실, 우리는 연결에
kayoko.tistory.com
[코드몬스터랩] 박사 과정 학생과 학계 종사자가 꼭 알아야 할 9가지 도구 - 파주 운정 코딩 교육
9 Must-Know Tools For PhD Students And Academics박사 과정 학생과 학계 종사자가 꼭 알아야 할 9가지 도구 당신의 삶을 바꿀 것입니다 * 아래는 'Axel Casas' 의 글을 번역한 글입니다. 건강한 생산
kayoko.tistory.com
#파주, #운정, #코딩, #코딩교육, #프로그램, #프로그래밍, #코드몬스터랩, #헬로우잡스, #안녕잡스
#일산, #온라인, #파주운정신도시, #ai, #교육, #AI직업, #코딩학원, #맞춤교육, #헬로잡스, #목동동
파주, 운정, 코딩, 코딩교육, 프로그램, 프로그래밍, 코드몬스터랩, 헬로우잡스, 안녕잡스
일산, 온라인, 파주운정신도시, ai, 교육, AI직업, 코딩학원, 맞춤교육, 헬로잡스,목동동
과정을 돋보이게 하는 교육
코드몬스터랩
교육상담문의 : 010-7912-4437