Python Official Site의 Tutorial 에 대한 내용을 공부하면서 정리한 글.


기본적으로 이 글은 Tutorial의 각 챕터에 대한 간략한 설명과

노란색 박스 안에 있는 코드를 보는 것 만으로는 이해하기 어려운 부분이나,

매번 기억해 두어야 할 내용들 그리고 C/C++ 과는 좀 다른 부분

혹은 Python 2.x 버전과는 다른 부분 위주로 정리해 보려 함.

글의 순서는 원래 문서의 챕터에 따름.


이 글의 범위

1. Whetting Your Appetite 3. An Informal Introduction to Python



1. Whetting Your Appetite

특별한 내용은 없음. C/C++/Java 나 Shell Script 보다 Python 이 나은 이유를 설명함.


2. Using the Python Interpreter

Python 인터프리터 사용에 대한 내용.


2.1. Invoking the Interpreter

2.1.1. Argument Passing

2.1.2. Interactive Mode

2.2. The Interpreter and Its Environment

2.2.1. Error Handling

2.2.2. Executable Python Scripts

Unix 시스템에서는 Python 스크립트를 바로 실행하기 위한 방법.

아래와 같은 줄을 넣으면 python file.py 형태가 아닌 ./file.py 형태로

바로 Python 스크립트를 실행할 수 있다. 물론 chmod +x 로 실행권한을 줘야한다.

#! /usr/bin/env python3.3

2.2.3. Source Code Encoding

기본적으로 Python 소스파일은 UTF-8로 처리가 되는데, 만약 사용하는 에디터가 UTF-8이 지원이 되지 않는다면,

(요즘은 웬만한 에디터는 다 지원한다. 윈도우의 기본 메모장이라도!)

아래와 같은 라인을 파일의 첫번째나 두번째 라인에 적어 소스파일의 인코딩을 직접 지정해 줄 수 있다.

# -*- coding: cp-949 -*-

지원하는 인코딩의 종류는 여기에서 확인할 수 있다.


2.2.4. The Interactive Startup File

2.2.5. The Customization Modules

3. An Informal Introduction to Python

Python에 대한 간단한 소개. 숫자, 스트링, 리스트에 대한 간단한 예제를 보여준다.


3.1. Using Python as a Calculator

3.1.1. Numbers

+, -, *, /, **, // 와 같은 연산자가 있다.

'/' 연산자의 경우 Python 2.x 과 3.x 가 조금 다르게 동작한다.

아래 예제 참고.

(Python 2.x)

>>> 3/4

0

>>> 3.0/4

0.75


(Python 3.x)

>>> 3/4

0.75

'//' 연산자는 나누셈 후 소숫점 부분을 버린 결과를 보여준다.

'**' 연산자는 제곱 연산

특별히 '_' 문자는 interactive 모드에서만 사용되는 것으로 마지막으로 계산의 결과를 저장한다.

(print 로 출력된 것이 아닌 순수한 계산결과.)


3.1.2. Strings

Python에서 문자열은 single quotes-작은따옴표('...')와 double quotes-큰따옴표("...")로 표현할 수 있고,

둘 다 같은 결과를 가진다. 작은따옴표 안에서 큰따옴표를 표시할 때나 반대의 경우에는 따로 escape 문자 '\'를

적을 필요가 없다. 작은따옴표 안에서 작은따옴표를 표시항 경우나 큰따옴표 안에서 큰따옴표를 표시할 때는 

'\'를 적어주어야 한다. 아래의 예제를 보면 좀 더 명확해진다.

>>> 'spam eggs'  # 작은 따옴표

'spam eggs'

>>> 'doesn\'t'  # 작은따옴표내에서 작은따옴표를 사용할 때 

"doesn't"

>>> "doesn't"  # 아니면 큰따옴표를 사용한다.

"doesn't"

>>> '"Yes," he said.'

'"Yes," he said.'

>>> "\"Yes,\" he said."

'"Yes," he said.'

>>> '"Isn\'t," she said.'

'"Isn\'t," she said.'

>>> print ('"Isn\'t," she said.')

"Isn't" she said.

마지막 바로 전의 예제는 다소 혼란스러운데, interactive 모드에서 문자열이 echo 될 때, 위와 같이 출력된다.

실제 스크립트에서 '"Isn\'t," she said.'라고 실행하더라도 해당 문자열이 표시(echo)되지는 않는다.

결국 print 명령으로 문자열을 출력해 보면 원하는 결과대로 출력이 된다.

따라서 크게 의미를 둘 필요는 없다.

만일, 문자열에서 '\'이 특수문자가 아닌 문자 그대로 해석이 되길 원한다면 아래와 같이 raw string을 사용한다.

>>> print('C:\some\name')  # here \n means newline!

C:\some

ame

>>> print(r'C:\some\name')  # note the r before the quote

C:\some\name

문자열이 여러줄인 경우 triple-quotes:"""...""" 혹은 '''...'''을 사용할 수 있다.

이 경우 한 줄의 끝에는 자동으로 new line 문자가 포함되는데,

'\'을 줄 끝에 붙이면 이것을 방지 할 수 있다. 아래의 예제를 보라.

>>> print("""\

Usage: thingy [OPTIONS]

     -h                        Display this usage message

     -H hostname               Hostname to connect to

""")

Usage: thingy [OPTIONS]

     -h                        Display this usage message

     -H hostname               Hostname to connect to

문자열내의 한 문자 혹은 부분문자열을 나타낼때는 아래와 같은 방법들이 있다.

>>> word = 'Python'


>>> word[0]  # character in position 0

'P'

>>> word[5]  # character in position 5

'n'


>>> word[-1]  # last character

'n'

>>> word[-2]  # second-last character

'o'

>>> word[-6]

'P'


>>> word[0:2]  # characters from position 0 (included) to 2 (excluded)

'Py'

>>> word[2:5]  # characters from position 2 (included) to 5 (excluded)

'tho'


>>> word[:2] + word[2:]

'Python'

>>> word[:4] + word[4:]

'Python'


>>> word[:2]  # character from the beginning to position 2 (excluded)

'Py'

>>> word[4:]  # characters from position 4 (included) to the end

'on'

>>> word[-2:] # characters from the second-last (included) to the end

'on'

Python 문자열은 변경할 수 없다.(immutable). 그러므로 아래와 같은 assigning은 에러가 발생한다.

>>> word[0] = 'J'

  ...

TypeError: 'str' object does not support item assignment

>>> word[2:] = 'py'

  ...

TypeError: 'str' object does not support item assignment


3.1.3. Lists

대괄호안에 콤마로 분리된 리스트로 씌여진다. 리스트는 다른 타입의 아이템을 가질 수 있지만,

일반적으로 같은 타입의 아이템을 가진다.

기본적인 사용법은 아래와 같다.

>>> squares = [1, 2, 4, 9, 16, 25]

>>> squares

[1, 2, 4, 9, 16, 25]


>>> squares[0]  # indexing returns the item

1

>>> squares[-1]

25

>>> squares[-3:]  # slicing returns a new list

[9, 16, 25]


>>> squares[:]

[1, 2, 4, 9, 16, 25]

마지막 명령은 리스트의 새로운 복사본을 생성하는데,

이것은 for 루프에서 iterable에 사용되는 리스트의 내용이 루프내에서 변경되는 경우,

iterable 을 리스트 자체가 아닌 리스트의 복사본으로 사용하려 할 때 편리하다.


3.2. First Steps Towards Programming

간단한 프로그램 예제. 기본적인 while 루프 및 print() 함수 사용법을 알 수 있다.

>>> # Fibonacci series:

... # the sum of two elements defines the next

... a, b = 0, 1

>>> while b < 10:

...     print(b)

...     a, b = b, a+b

...

1

1

2

3

5

8


반응형

설정

트랙백

댓글