본 글은 제가 Python 을 공부하며 알게 된 내용을 정리하기 위해 작성하였습니다. 생략된 부분이 많고, Python 의 특징을 다른 언어들과 비교하는 방식으로 기술하기도 하므로, 처음 프로그래밍을 접하는 분에게는 적합한 글이 아닐 수 있습니다.


체계적으로 Python 을 학습하고자 하는 분은 점프 투 파이썬 | 박응용 을 참고하기 바랍니다. 프로그래밍을 처음 접하는 사람들을 위해 쓴 책으로, 링크된 사이트에서 책의 내용 전부를 볼 수 있습니다. 현재 e-book 으로도 판매중입니다. 초보 학습자를 위한 강추 Python(Python) 링크 | 잉고래 의 링크도 도움이 될 것입니다.


다른 언어를 학습한 경험이 있는 분에게는 빠르게 활용하는 파이썬 3.2 프로그래밍 | 신호철, 우상정, 최동진을 권합니다. 풍부한 예제와 함께 중요 내용을 간결하게 담아낸 좋은 책입니다.


아래 내용의 출처는 위에서 소개한 두 권의 도서와, 파이썬 공식 홈페이지의 문서들 입니다.

if 문

파이썬은 들여쓰기를 굉장히 중요시 합니다. 들여쓰기를 할 때는 탭이면 탭, 공백이면 공백 둘 중의 하나를 일관되게 사용해야 합니다.


else if 문을 사용할 때는 elif 라고 씁니다.


조건문을 벗어날 때는 pass 문을 사용합니다. 아무 것도 하지 않겠다는 의미입니다. pass 문은 함수, 클래스를 선언만 해 둘 때에도 사용할 수 있습니다. (C 나 Java 처럼 {} 내부를 공란으로 둘 수 없기 때문에 pass 를 활용합니다.)


myList = [1, 2, 3]

for a in myList:
     if(a is 1):
          print(a)
     elif(a is 2):
          pass
     else:
          print("a는 1, 2 가 아님")

for 문

python 의 for 문은 Java 나 C# 의 for-each 문과 비슷합니다. index 를 사용하지 않고 개별 요소에 접근하고, for 문 내부에서 요소를 수정하여도 원본은 수정되지 않습니다. 물론 인덱스를 지정하여 값을 수정하면 원본을 수정하는 것이므로 수정 내용이 반영됩니다.


다른 언어를 사용 해 오신 분은 for(i=0; i<n; i++) 형태가 아니어서 조금 낯설 수 있겠네요.


myList = [0, 0, 0, 0]

for i in myList:
     i = 1      # 요소를 1로 바꿈
     print(i)   # 1 네 번 출력

print(myList)    # [0, 0, 0, 0] 출력 - 수정내용이 반영되지 않음

for i in range(len(myList)):
     myList[i]=1

print(myList)    # [1, 1, 1, 1] 출력 - 수정내용이 반영됨


C 나 Java 의 기본 for 문 처럼 사용하고 싶다면 range() 를 이용합니다. range() 는 숫자 범위를 가지는 range class 를 반환 합니다.


range() 의 매개변수는 (start, stop[, step]) 입니다. 증감식을 step 에 기입 합니다. 생략된 start 의 default 값은 0 이고, 생략된 step 의 default 값은 1 입니다.


python2.x 에서는 속도 향상을 위해 xrange() 를 사용했다고 하나, python3 에서는 그냥 range() 를 쓰면 됩니다.


for i in range(10):     # for(i=0; i<10;i++) 과 같다.
     print(i, end=" ")     # 0~9 까지 출력한다.

print()

for i in range(5, -5,-2):     # for(i=5; i>-5;i-=2) 와 같다.
     print(i, end=" ")     # 5~ -4 까지, 2씩 감소하며 출력한다.


for loop 가 리스트 내의 터플 요소를 순환하며 작업을 수행하도록 할 수도 있습니다.


myList = [(1,2,3), (4,5,6), (7,8,9)]

for (i, j, k) in myList:     # 리스트 내의 tuple 들을 모두 출력
     print(i, j, k)

for (i, j) in myList:     # tuple 의 길이가 맞지 않으므로 에러 발생
     print(i, j)


Python 에서는 for, while 문에도 else 문을 사용할 수 있습니다. for, while 뒤의 else 문은 정상적으로 반복이 종료된 경우에만 실행 됩니다. break 으로 인해 반복이 종료된 경우에는 else 문이 실행되지 않습니다.


for i in range(4):
     if(i==5): break
     else: print(i)     # 0~3 출력
else:
     print("마지막 숫자 :", i)     # 마지막 숫자 3 출력

for i in range(6):
     if(i==5): break
     else: print(i)     # 0~4 출력
else:
     print("마지막 숫자 :", i)     # 실행되지 않음

while 문

while(1): 은 무한루프 입니다. break(↔ continue) 으로 빠져 나갑니다.