본문으로 바로가기

List Comprehension

category 프로그래밍/Python 2019.01.17 10:32

파이썬의 기본 문법은 대충 알겠는데, 막상 무엇을 코딩하려고 하면...

어떡하지...? 어떻게 시작해야 하지...? 흠... ;;;

위와 같은 생각일 때가 태반이다. 그만큼 파이썬이 익숙하지 않고 어떤 라이브러리를 import 해서 사용해야 되는지 어디서부터 어디까지 내가 코딩하면 되는지 막막하게 느껴진다. 그래서 가장 빠르게 파이썬에 익숙해지려면 직접 코딩하는 것이 빠르기 때문에 WikiDocs의 연습 문제를 직접 푸는 방법으로 익숙해지려고 한다.


다음 문제는 굉장히 쉬운 문제이나 코딩 방식에 따라 파이썬 언어의 특징을 제대로 알려 줄 수 있다.


10 미만의 자연수에서 3과 5의 배수를 구하면 3, 5, 6, 9이다. 이들의 총합은 23이다.
1000 미만의 자연수에서 3의 배수와 5의 배수의 총합을 구하라.


C언어를 하던 방식으로 위의 문제를 파이썬으로 작성하면 다음과 같이 작성할 수 있다. 정말 단순한 코드이다.

result = 0
for n in range(1, 1000):
	if (n % 3) == 0 or (n % 5) == 0:
		result = result + n

print("sum = %d" %result)

위와 같이 여러 라인으로 코딩한 것을 파이썬스럽게 변경하면 다음과 같이 한 줄로 작성할 수 있다는 것에 놀라지 않을 수 없다.

result = sum([x for x in range(1, 1000) if not (x % 3) or not (x % 5)])
print("sum = %d" %result)

파이썬은 배열(iterable)과 같은 데이터(오브젝트)를 생성할 때 다양한 표현을 제공한다. 이것을 잘 사용한다면 위와 같이 여러 줄로 작성해야 할 코드를 아주 심플하게 작성하는 것이 가능하다.


파이썬 문법을 제대로 이해하고 있다면 유용한 기능이지만, C와 자바같이 기존 코드 형식에 익숙한 사람이 파이썬을 처음 접하면 매우 어렵게 느껴지는 것도 사실이다. 이런 표현식(?)에 대한 자세한 설명은 관련 문서를 참고하면 좋을 것이다.


'프로그래밍 > Python' 카테고리의 다른 글

Firmware header changer  (0) 2019.03.14
OTA TS Generator  (0) 2019.03.08
AES CBC decrypt  (0) 2019.02.26
List Comprehension  (0) 2019.01.17
String to Hex 변환  (0) 2019.01.13
Visual Studio Code - Python 설정  (0) 2019.01.08