#!/usr/bin/env python # coding: utf-8 # *** # *** # # 2. 파이썬 언어의 기본문형 # *** # *** # *** # ## 1 파이썬 예약어 및 내장 함수 # *** # ### 1-1 예약어 (Reserved Words) # - 예약어 (또는 키워드) # - 파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명등의 식별자로 사용하면 안되는 단어들 # ### 1-2 예약어의 종류 알아보기 # In[2]: import keyword as kwd print(kwd.kwlist) print() print(len(kwd.kwlist)) # ### 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[4]: print(str(3)) print(str([1, 2])) a = 3 # - 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[14]: print(range(10)) print(range(3, 10)) print(range(3, 10, 2)) print() print(list(range(10))) print(list(range(3, 10))) print(list(range(3, 10, 2))) # - type(object) # - 임의의 객체 object의 자료형을 반환하는 함수 # In[7]: print(type(-1)) print(type('abc')) print(type([1, 2, 3])) print(type(range(10))) # - all(iterable) # - iterable의 모든 요소가 참이면 True를 반환하는 함수 # # def all(iterable):
#     for element in iterable:
#         if not element:
#             return False
#     return True
#
# - any(iterable) # - iterable의 하나의 요소라도 참이면 True를 반환하는 함수 # # def any(iterable):
#     for element in iterable:
#         if element:
#             return True
#     return False
# In[22]: print(all([1])) print(all([1, False])) print() print(any([1])) print(any([1, False])) # 조건 1, 조건 2 k = 1 l = 2 conditions = all([k == 1, l == 2]) if conditions: print(11111111111111) # In[ ]: # *** # ## 2 파이썬 식별자와 변수 사용 # *** # ### 2-1 식별자 만드는 법 # - 파이썬 식별자는 변수, 함수, 모듈, 클래스 또는 객체를 식별하는데 사용되는 이름이다. # - 식별자의 조건 # - 대소문자 구별함 # - 식별자는 문자 A~Z 또는 a~z과 언더바(\_)로 시작할 수 있다. # - 식별자 첫 시작을 제외하고 식별자 내에 숫자(0~9)를 사용할 수 있다. # - 특수문자 @, $, % 등은 식별자의 어느 자리에도 올 수 없다. # # - 예를 들어 다음과 같은 것은 식별자가 될 수 없음 # - 1abc, @file, %x, a%a, a$a, a@a # ### 2-2 변수명 만들 때 조심할 점 # - 예약어, 내장함수, 모듈 이름을 변수명으로 만드는 일이 없도록 할것 # In[13]: print(str(12345)) # In[23]: str = 'abc' print(str(12345)) # ### 2-3 변수의 생성 및 사용 # - 파이썬에서 변수가 생성되는 시점은 해당 변수에 임의의 값이 할당될 때이다. # In[15]: a = 1 print(a) # - 변수의 생성 없이 곧바로 사용할 수 없다. # In[25]: print(b) # ### 2-4 변수의 삭제 # - del 이라는 예약어 사용 # In[17]: b = 2 print(b) del b print(b) # *** # ## 3 파이썬 기초 문형 # *** # ### 3-1 주석문 # In[26]: a = 1 # b = 2 # a = 3 print(b) # In[25]: """여기부터 여기도 math.min() <-- 그저 문자열 주석입니다.""" import math # ### 3-2 연속라인 # In[19]: a = 1 b = 3 if (a == 1) and \ (b == 3): print('connected lines') # In[20]: a = 1 b = 3 if (a == 1) and (b == 3): print('connected lines') # ### 3-3 할당문 (Assignment) # In[26]: a = 1 b = a # In[27]: 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[27]: import copy a = copy.deepcopy(1) if a is 1: print("1은 미리 할당되어진 객체") b = copy.deepcopy(256) if b is 256: print("256도 미리 할당되어진 객체") c = copy.deepcopy(257) if not(c is 257): print("257부터는 미리 할당되어진 객체가 아니다.") #mac os 기준 # 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[29]: name = input('name?') # In[50]: print(name) # - int(): 문자열을 정수로 변환하는 내장함수 #
int(x=0) -> integer
# int(x, base=10) -> integer
# In[51]: 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[53]: 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[31]: get_ipython().run_line_magic('pinfo', ' min') # ### 4-2 콘솔 출력 # - print: 화면에 자료를 출력하는 보편적인 statement # - 하나의 print로 두 개 이상의 자료를 출력할 때에는 , 사용 # In[62]: print(4 + 5, 4 - 2) # - 세미콜론(;)은 순차적으로 입력된 각 statement를 분리함 # In[63]: print(1); print(2) # In[66]: print(1), print(2) print() print(1) print(2) # - print를 여러번 사용하여 두 개 이상의 자료를 newline 없이 출력할 때에는 end=' '를 사용 (디폴트는 end='\n') # In[33]: print(1, end=", ") print(2) print() print(1, end=" ") print(2) # - 화면에 자료를 출력할 때 format()은 유용하게 활용 가능함. # In[69]: string = "{}-2학기" print(string.format(2020)) # In[36]: string = "나의 시력은 {0:10.5f}이고 발 사이즈는 {1:1d}학기" print(string.format(1., 2)) # - +연산자는 숫자와 문자열에 대한 연산을 지원하지 않는다. # In[70]: print(12 + 'spam') # In[71]: print('12' + 'spam') #

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