2. 파이썬 언어의 기본문형




1 파이썬 예약어 및 내장 함수


1-1 예약어 (Reserved Words)

  • 예약어 (또는 키워드)
    • 파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명등의 식별자로 사용하면 안되는 단어들

1-2 예약어의 종류 알아보기

In [5]:
import keyword

print keyword.kwlist
print
print len(keyword.kwlist)
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

31

1-3 내장 함수 (Built-in Function)

  • 별도의 모듈(Module)의 추가 없이 기본적으로 제공되는 함수들
  • 참고 사이트
    1. 내장(Built-in) 함수: https://docs.python.org/2/library/functions.html
  • 대표적인 내장 함수
    • abs, max, min, pow, chr, str, range, type, ...
  • abs(x)
    • 수치형 자료 x에 대해 x의 절대값을 반환하는 함수
In [1]:
print abs(3)
print abs(-3)
3
3
  • max(s)
    • 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최대값을 반환하는 함수
In [20]:
print max(1, 2)
print max([1, 2, 3])
print max("python")
2
3
y
  • min(s)
    • 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최소값을 반환하는 함수
In [18]:
print min(1, 2)
print min([1, 2, 3])
print min("python")
1
1
h
  • pow(x,y)
    • 수치형 자료형 x, y에 대해 x의 y승을 반환하는 함수
In [19]:
print pow(2, 4)
print pow(3, 3)
print pow(2, -1)
16
27
0.5
  • chr(i)
    • 정수 형태의 ASCII코드 값을 입력으로 받아 그에 해당하는 문자를 반환하는 함수
    • 인수 i의 범위: 0부터 255까지
In [10]:
print chr(97)
print chr(65)
print chr(48)
a
A
0
  • str(object)
    • 임의의 객체 object에 대해 해당 객체를 표현하는 문자열을 반환하는 함수
In [17]:
print str(3)
print str([1, 2])
3
[1, 2]
  • range([start,]stop[,step])
    • 수치형 자료형으로 start, stop, step 등을 입력받아 해당 범위에 해당하는 정수를 리스트로 반환하는 함수
    • 인수가 하나(stop)인 경우
      • 0부터 stop-1까지의 정수 리스트를 반환한다.
    • 인수가 두 개(start, stop)인 경우
      • start부터 stop-1까지의 정수 리스트를 반환한다.
    • 인수가 세 개(start, stop, step)인 경우
      • start부터 stop-1까지의 정수를 반환하되 각 정수 사이의 거리가 step인 것들만 반환한다.
In [15]:
print range(10)
print range(3, 10)
print range(3, 10, 2)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
[3, 5, 7, 9]
  • type(object)
    • 임의의 객체 object의 자료형을 반환하는 함수
In [16]:
print type(-1)
print type('abc')
print type([1, 2, 3])
<type 'int'>
<type 'str'>
<type 'list'>

2 파이썬 식별자와 변수 사용


2-1 식별자 만드는 법

  • 파이썬 식별자는 변수, 함수, 모듈, 클래스 또는 객체를 식별하는데 사용되는 이름이다.
  • 식별자의 조건
    • 대소문자 구별함
    • 식별자는 문자 A~Z 또는 a~z과 언더바(_)로 시작할 수 있다.
    • 식별자 첫 시작을 제외하고 식별자 내에 숫자(0~9)를 사용할 수 있다.
    • 특수문자 @, $, %등은 식별자에 올 수 없다.
    • 예를 들어 다음과 같은 것은 식별자가 될 수 없음
      • 1abc, @file, %x

2-2 변수명 만들 때 조심할 점

  • 예약어, 내장함수, 모듈 이름을 변수명으로 만드는 일이 없도록 할것
In [1]:
print str(12345)
12345
In [2]:
str = 'abc'

print str(12345)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-ad06f2f248af> in <module>()
      1 str = 'abc'
      2 
----> 3 print str(12345)

TypeError: 'str' object is not callable

2-3 변수의 생성 및 사용

  • 파이썬에서 변수가 생성되는 시점은 해당 변수에 임의의 값이 할당될 때이다.
In [21]:
a = 1
print a
1
  • 변수의 생성 없이 곧바로 사용할 수 없다.
In [22]:
print b
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-22-ab3a5d8f1075> in <module>()
----> 1 print b

NameError: name 'b' is not defined

2-4 변수의 삭제

  • del 이라는 예약어 사용
In [24]:
b = 2
print b

del b
print b
2
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-24-026dc2933af4> in <module>()
      3 
      4 del b
----> 5 print b

NameError: name 'b' is not defined

3 파이썬 기초 문형


3-1 주석문

In [1]:
#이것은 주석입니다.
import sys #이것도 주석입니다.

3-2 연속라인

In [3]:
a = 1
b = 3
if (a == 1) and \
(b == 3):
    print 'connected lines'
connected lines
In [25]:
a = 1
b = 3
if (a == 1) and (b == 3):
    print 'connected lines'
connected lines

3-3 할당문 (Assignment)

In [14]:
a = 1
b = a
In [15]:
1 + 3 = a
  File "<ipython-input-15-3aa35fdab4b7>", line 1
    1 + 3 = a
SyntaxError: can't assign to operator
In [26]:
a = 1
a = a + 1
print a
2
In [27]:
c, d = 3, 4
print c, d

x = y = z = 0
print x, y, z

e = 3.5; f = 5.6
print e, f
3 4
0 0 0
3.5 5.6
  • 두 변수의 값을 swap하는 방법
In [28]:
e = 3.5; f = 5.6
e, f = f, e
print e, f
5.6 3.5
  • 아래에서 b = c + d는 식(Expression)이 아니라 문(Statement)이기 때문에 a에 할당될 수 없다.
In [29]:
a = (b = c + d)
  File "<ipython-input-29-79d71c957091>", line 1
    a = (b = c + d)
           ^
SyntaxError: invalid syntax

3-4 확장 할당문

In [3]:
a = 1
a += 4
print a
5
In [4]:
a = 10
a -= 3
print a
7
In [5]:
a = 10
a *= 2+3
print a
50

3-5 객체와 할당

  • 객체의 변수는 해당 객체의 레퍼런스를 지니고 있음
  • a = 1이라는 Statement에서 a는 이름, 1은 객체이며 a 변수는 1이라는 객체를 가리킨다.
    • 즉, a 변수는 1 객체의 레퍼런스를 지니고 있음
In [42]:
a = [1,2,3]
b = [10, a, 20]
c = ['x', a, 'y']

print a
print b
print c
[1, 2, 3]
[10, [1, 2, 3], 20]
['a', [1, 2, 3], 'b']

image

In [43]:
a[1] = 1000

print a
print b
print c
[1, 1000, 3]
[10, [1, 1000, 3], 20]
['a', [1, 1000, 3], 'b']

4 콘솔 입출력


4-1 콘솔 입력

  • 콘솔 (Console)
    • 윈도우즈에서는 Command창, 리눅스/맥에서는 Terminal창
    • 각 IDE (예, 이클립스)에서는 별도의 콘솔 창이 제공됨
  • raw_input(): 문자열 입력 내장함수
In [7]:
name = raw_input('name?')
name?홍길동
In [8]:
print name
홍길동
  • int(): 문자열을 정수로 변환하는 내장함수
In [6]:
k = int(raw_input('int : '))
print k
int : 12
12
  • input(): 정수, 실수, Expression 입력 내장함수
In [9]:
i = input('int :')
print i
int :45
45
In [10]:
k = input('expr:')
print k
expr:30 + 50
80

4-2 콘솔 출력

  • print: 화면에 자료를 출력하는 보편적인 statement
  • 여러 자료를 한꺼번에 출력할 때에는 콤마(,)를 사용
In [68]:
print 4 + 5, 4 - 2
9 2
  • 세미콜론(;)은 순차적으로 입력된 각 statement를 분리함
In [69]:
print 1; print 2
1
2
  • 기본적으로 print는 마지막에 줄바꿈을 하지만 콤마(,)가 마지막에 있으면 줄바꿈을 하지 않는다.
In [1]:
print 1,
print 2
1 2
  • +연산자는 숫자와 문자열에 대한 연산을 지원하지 않는다.
In [71]:
print 12 + 'spam'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-71-84ee898a197b> in <module>()
----> 1 print 12 + 'spam'

TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [4]:
print '12' + 'spam'
12spam

참고 문헌: 파이썬(열혈강의)(개정판 VER.2), 이강성, FreeLec, 2005년 8월 29일