#!/usr/bin/env python # coding: utf-8 # *** # *** # # 2. 파이썬 언어의 기본문형 # *** # *** # *** # ## 1 파이썬 예약어 및 내장 함수 # *** # ### 1-1 예약어 (Reserved Words) # - 예약어 (또는 키워드) # - 파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명등의 식별자로 사용하면 안되는 단어들 # ### 1-2 예약어의 종류 알아보기 # In[2]: import keyword print(keyword.kwlist) print() print(len(keyword.kwlist)) # python3에 추가됨 : 'False', 'None', 'True', 'nonlocal' # python3에서는 제거됨 : 'exec', 'print' # # Python2 : # ['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/3.6/library/functions.html # - 대표적인 내장 함수 # - abs, max, min, pow, chr, str, range, type, ... # - abs(x) # - 수치형 자료 x에 대해 x의 절대값을 반환하는 함수 # In[3]: print(abs(3)) print(abs(-3)) # - max(s) # - 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최대값을 반환하는 함수 # In[4]: print(max(1, 2)) print(max([1, 2, 3])) print(max("python")) # - min(s) # - 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최소값을 반환하는 함수 # In[5]: print(min(1, 2)) print(min([1, 2, 3])) print(min("python")) # - pow(x,y) # - 수치형 자료형 x, y에 대해 x의 y승을 반환하는 함수 # In[6]: print(pow(2, 4)) print(pow(3, 3)) print(pow(2, -1)) # - chr(i) # - 정수 형태의 Unicode값을 입력으로 받아 그에 해당하는 문자를 반환하는 함수 # - 인수 i의 범위: 0부터 0x10ffff (Decimal표현으로 1114111) 까지 # In[7]: print(chr(97)) print(chr(65)) print(chr(48)) # - str(object) #
str(object='') -> str
# - 임의의 객체 object에 대해 해당 객체를 표현하는 문자열을 반환하는 함수 # - Create a new string object from the given object. # In[8]: print(str(3)) print(str([1, 2])) # - range #
 
#   range(stop) -> range object
# range(start, stop[, step]) -> range object 
# - 수치형 자료형으로 start, stop, step 등을 입력받아 start부터 stop까지의 정수값들이 순차적으로 들어 있는 range object를 리스트로 반환하는 함수 # - Python2에서는 range()의 결과로 곧바로 리스트가 반환됨 # - 인수가 하나(stop)인 경우 # - 0(디폴트 값)부터 stop-1까지의 정수 리스트를 반환한다. # - 인수가 두 개(start, stop)인 경우 # - start부터 stop-1까지의 정수 리스트를 반환한다. # - 인수가 세 개(start, stop, step)인 경우 # - start부터 stop-1까지의 정수를 반환하되 각 정수 사이의 거리가 step인 것들만 반환한다. # # In[2]: 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] print() print(list(range(10))) print(list(range(3, 10))) print(list(range(3, 10, 2))) # - type(object) # - 임의의 객체 object의 자료형을 반환하는 함수 # In[25]: print(type(-1)) print(type('abc')) print(type([1, 2, 3])) # # # # type 에서 class로 바뀜 # *** # ## 2 파이썬 식별자와 변수 사용 # *** # ### 2-1 식별자 만드는 법 # - 파이썬 식별자는 변수, 함수, 모듈, 클래스 또는 객체를 식별하는데 사용되는 이름이다. # - 식별자의 조건 # - 대소문자 구별함 # - 식별자는 문자 A~Z 또는 a~z과 언더바(\_)로 시작할 수 있다. # - 식별자 첫 시작을 제외하고 식별자 내에 숫자(0~9)를 사용할 수 있다. # - 특수문자 @, $, % 등은 식별자의 어느 자리에도 올 수 없다. # # - 예를 들어 다음과 같은 것은 식별자가 될 수 없음 # - 1abc, @file, %x, a%a, a$a, a@a # ### 2-2 변수명 만들 때 조심할 점 # - 예약어, 내장함수, 모듈 이름을 변수명으로 만드는 일이 없도록 할것 # In[26]: print(str(12345)) # In[27]: str = 'abc' print(str(12345)) # ### 2-3 변수의 생성 및 사용 # - 파이썬에서 변수가 생성되는 시점은 해당 변수에 임의의 값이 할당될 때이다. # In[28]: a = 1 print(a) # - 변수의 생성 없이 곧바로 사용할 수 없다. # In[29]: print(b) # ### 2-4 변수의 삭제 # - del 이라는 예약어 사용 # In[30]: b = 2 print(b) del b print(b) # *** # ## 3 파이썬 기초 문형 # *** # ### 3-1 주석문 # In[31]: #이것은 주석입니다. import sys #이것도 주석입니다. # ### 3-2 연속라인 # In[32]: a = 1 b = 3 if (a == 1) and \ (b == 3): print('connected lines') # In[33]: a = 1 b = 3 if (a == 1) and (b == 3): print('connected lines') # ### 3-3 할당문 (Assignment) # In[34]: a = 1 b = a # In[35]: 1 + 3 = a # In[36]: a = 1 a = a + 1 print(a) # In[37]: c, d = 3, 4 print(c, d) x = y = z = 0 print(x, y, z) e = 3.5; f = 5.6 print(e, f) # - 두 변수의 값을 swap하는 방법 # In[38]: e = 3.5; f = 5.6 e, f = f, e print(e, f) # - 아래에서 b = c + d는 식(Expression)이 아니라 문(Statement)이기 때문에 a에 할당될 수 없다. # In[39]: a = (b = c + d) # ### 3-4 확장 할당문 # In[40]: a = 1 a += 4 print(a) # In[41]: a = 10 a -= 3 print(a) # In[42]: a = 10 a *= 2+3 print(a) # ### 3-5 객체와 할당 # - 객체의 변수는 해당 객체의 레퍼런스를 지니고 있음 # - a = 1이라는 Statement에서 a는 이름, 1은 객체이며 a 변수는 1이라는 객체를 가리킨다. # - 즉, a 변수는 1 객체의 레퍼런스를 지니고 있음 # In[43]: a = [1,2,3] b = [10, a, 20] c = ['x', a, 'y'] print(a) print(b) print(c) # ![image](../images/assignment.png) # In[44]: a[1] = 1000 print(a) print(b) print(c) # *** # ## 4 콘솔 입출력 # *** # ### 4-1 콘솔 입력 # - 콘솔 (Console) # - 윈도우즈에서는 Command창, 리눅스/맥에서는 Terminal창 # - 각 IDE (예, 이클립스)에서는 별도의 콘솔 창이 제공됨 # - Python2에서, raw_input(): 문자열 입력 내장함수 # - Python3부터는 input()만을 사용 # - raw_input() 내장함수는 지원하지 않음 # In[46]: # raw_input 에서 input 으로 변경 # name = raw_input('name?') name = input('name?') # In[47]: print(name) # - int(): 문자열을 정수로 변환하는 내장함수 #
int(x=0) -> integer
# int(x, base=10) -> integer
# In[16]: print(int(3.14)) # For floating point numbers, this truncates towards zero. 0이 되는 방향으로 소숫점 이하를 버림 print(int()) # return 0 if no arguments are given. 그냥 int()는 0을 리턴 # In[1]: # k = int(raw_input('int : ')) k = input('str : ') print(k) print(type(k)) print() k = int(input('int : ')) print(k) print(type(k)) # In[2]: # Python3에서 input()의 기능 # Read a string from standard input. The trailing newline is stripped. # In[29]: get_ipython().run_line_magic('pinfo', ' input') # In[52]: k = input('expr:') print(k) # expr:30 + 50 # 80 # ### 4-2 콘솔 출력 # - print: 화면에 자료를 출력하는 보편적인 statement # - 하나의 print로 두 개 이상의 자료를 출력할 때에는 , 사용 # In[53]: print(4 + 5, 4 - 2) # - 세미콜론(;)은 순차적으로 입력된 각 statement를 분리함 # In[54]: print(1); print(2) # - Python2에서 기본적으로 print는 마지막에 줄바꿈을 수행한다. 그러나 콤마(,)가 마지막에 있으면 줄바꿈을 하지 않음 # - Python3에서는 콤마를 붙이나 안붙이나 상관없이 줄바꿈을 수행 # In[3]: print(1), print(2) #1 2 print() print(1) print(2) # - print를 여러번 사용하여 두 개 이상의 자료를 newline 없이 출력할 때에는 end=' '를 사용 (디폴트는 end='\n') # In[8]: print(1, end=", ") print(2) print() print(1, end=" ") print(2) # - +연산자는 숫자와 문자열에 대한 연산을 지원하지 않는다. # In[60]: print(12 + 'spam') # In[61]: print('12' + 'spam') #

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