본 글은 제가 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) 으로 빠져 나갑니다.
'프로그래밍' 카테고리의 다른 글
[Python] 파이썬 기본내용 정리(6) - 클래스 (0) | 2013.07.29 |
---|---|
[Python] 파이썬 기본내용 정리(5) - 함수와 모듈 (0) | 2013.07.29 |
[Python] 파이썬 기본내용 정리(3) - 변수와 연산자 (2) | 2013.07.28 |
[Python] 파이썬 기본내용 정리(2) - 자료구조 (0) | 2013.07.26 |
[Python] 파이썬 기본내용 정리(1) - 자료형 (0) | 2013.07.25 |