Basic Python

(** 인터넷 익스플로러에서 보면 파이썬 코드 줄이 제대로 적용되어 보이지 않을 수 있습니다.**)

2017년 겨울방학 동안 기초 파이썬 프로그래밍을 공부하는 내용을 요약해서 기록한다. C/C++/Java 프로그래밍을 수강한 학생들과 스터디를 진행하기 때문에 기본적인 프로그래밍 언어 구문과 클래스와 객체 개념을 되풀이해서 공부하지 않는다. 즉, 파이썬의 if, for, 클래스 등의 구문을 배우며 시작하지 않고 일단 파이썬 응용 프로그램을 공부하되 배우지 않은 파이선 구문이 나오면 별도로 찾아보는 방식으로 진행한다.

파이썬 프로그래밍 환경

  • Python IDLE : 최소한의 파이썬 환경으로 www.python.org에서 3.x 버전으로 다운받아 사용
  • Spyder : 또는 anaconda.org에서 Anaconda를 다운받아 설치하고 Anaconda Spyder 환경을 사용

교재는 파이썬 프로그래밍 (김영섭역, 홍릉출판사)를 사용하고 11장~16장, 19장을 스터디하고 나머지 부분은 필요할 때마다 참고한다.  11장을 본격적으로 공부하기 전에 C/C++/Java와 다른 매우 기초적인 파이썬 구문과 특징 몇 가지를 설명한다.

프로그래밍 언어를 배우면 '헬로우 월드' 프로그램을 작성하면서 시작한다.

print ('Hello Python World!!')

파이썬의 For 구문은 C/C++/Java와 조금 다른 형태로 정의되어 있고, 반복할 범위를 range를 통해서 설정한다.

for i in range(0,4):
     print(i)

프로그램을 실행하면 0, 1, 2, 3이 각각 새로운 라인에 출력된다. range(0,4)는 0을 포함하고 4를 포함하지 않는 범위이고, 이 범위의 각 숫자를 i로 놓고 for문의 몸체인 print(i)를 실행한다. 이때 for문의 몸체를 감싸는 블럭 { } 기호를 사용하지 않고 print(i) 문장 앞에 적절한 들여쓰기를 작성함으로써 for문의 몸체 안에 있는 문장임을 구분한다. for문 마지막에 콜론(:) 기호를 작성하는 것도 C/C++/Java 프로그래밍 언어의 for문과 다르다.

파이썬은 리스트를 지원하는 특징을 가지고 있다.

L = ['Hello', 'Python', 'World']
for i in range(len(L)):
     print(L[i])

대괄호 [ ]로 리스트를 표현한다. 위의 예제에서 3개의 문자열 'Hello', 'Python', 'World'를 원소로 하는 리스트 ['Hello', 'Python', 'World']를 변수 L에 대입한다.

len(L)은 변수 L이 가리키는 리스트의 길이이다. 즉, len(L)은 3이고, range(3)은 0,1,2이다. 따라서 for문에서 변수 i를 0,1,2로 차례로 설정하고 몸체를 실행한다. 이때 L[i]는 변수 L이 가리키는 리스트에서 i번째 원소이다.

따라서 위 리스트 프로그램 예제를 실행하면 그 결과는 리스트 원소 'Hello', 'Python', 'World'를 한 줄씩 출력한다.

다음 리스트는 원소로 다른 리스트들 ['Chonnam', 'National', 'University']과 ['Chosun', 'University']를 포함한다.

L = [ ['Chonnam', 'National', 'University'], ['Chosun',, 'University'] ]

이 리스트의 리스트에서 문자열을 모두 꺼내 출력하려면 중복된 for문을 사용한다.

L = [ ['Chonnam', 'National', 'University'], ['Chosun', 'University'] ]
for i in range(len(L)):
     L1 = L[i]
     for j in range(len(L1)):
          print(L1[j])

len(L)은 2이지만, len(L1)은 차례로 3과 2가 된다.

 

파이썬의 또 다른 특징으로 딕셔너리가 있다. 딕셔너리, 즉 사전은 키와 값으로 이뤄진 집합이다.

monthDict = { 'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5, 1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May' }
print (monthDict[3])
print (monthDict['Apr'] - monthDict['Jan'])

위 프로그램에서 { }로 감싼 부분이 딕셔너리 예다. 키 'Jan'의 값 1, 키 'Feb'의 값 2, 키 'Mar'의 값 3, ..., 키 1의 값 'Jan', 키 2의 값 'Feb', 키 3의 값 'Mar' 등이다. 딕셔너리를 가리키는 변수 monthDict에 첨자로 키를 주면 해당하는 값을 리턴한다. 예를 들어, monthDict[3]은 'Mar'이고, monthDict['Apr']는 4이다.