PYTHON
#1 문법과 기본적인 기능
목차
• Python에 대하여...
• Python 특징
• Python 프로그래밍
• 변수
• 연산
• 문자열 다루기
• 조건문
• 반복문
• 함수
• 클래스
• 입출력
• 주석
• 라이브러리
• 예외 처리
• 과제
• Codecademy
• 부록
• 참고 사이트
PYTHON에 대하여...
• Python 특징
Python 특징
• 파이썬은 인터프리터 언어다.
• C, C++, JAVA 등의 언어는 컴파일 언어
• 컴파일 결과로 기계어를 뽑아 냄
• 이미 만들어진 기계어를 이용하여 프로그램이 실행
• 인터프리터는 고급 언어로 작성된 코드를 해석하여 실행
• 컴파일 된 기계어를 이용하는 게 아니라, 그때 그때 필요한 기계어를 생성해 씀
• 파이썬 버전
• 2와 3이 있음
• 버전 2는 2.7까지 나왔지만, 2.8이 배포될 계획은 없으며, 2020년까지 지원한다고 함
• 버전 2만 가능한 라이브러리때문에 2를 쓰는 경우도 있지만, 언젠가는 3으로 가야 함
Python 특징
• 들여쓰기(인덴트, indent)
• 다른 언어들과 달리 파이썬은 들여쓰기를 강제함
• C나 Java에서 반복문, 함수의 범위를 위해 중괄호를 사용한 것처럼, 파이썬은 인덴트
를 이용하여 구분한다
• 들여쓰기 방법
• 탭 또는 space를 이용
• -> 파이썬 3에서는 탭과 스페이스를 섞어 쓰면 오류 발생
• 에디터에 따라 탭을 누르면 다수의 스페이스를 쓸 때도 있으니 주의한다
• 프로그램 전체에 일관성만 있다면 취향대로 씀
Python 특징 – 종류
• Cpython
• C로 작성된 인터프리터를 이용하는 파이썬
• 원조
• 가장 많이 쓰임 (일반적으로 파이썬은 Cpython을 의미)
• Jython
• 자바로 작상된 인터프리터를 이용하는 파이썬
• 자바 가상 머신에서 동작
• 모든 자바 클래스를 바로 불러올 수 있음
• PyPy
• 파이썬으로 작성된 파이썬 인터프리터
PYTHON 프로그래밍
• 변수
• 연산
• 문자열 다루기
• 조건문
• 반복문
• 함수
• 클래스
• 입출력
• 주석
• 라이브러리
• 예외 처리
Python 프로그래밍 – 변수
• C나 C++, Java와는 다르게 앞에 변수를 선언할 때 자료형을 명시하지 않는다
• 넣는 값에 따라 자료형이 자동으로 결정됨
• 단순히 변수이름 = 값 하면 됨
• Ex)
• numVar = 1
• 타입을 확인을 하고싶다면?
• type()함수 이용
Python 프로그래밍 – 변수
• 자료형
자료형 설명
없음(None) NULL 값 개체
정수(int) 일반 정수 (예 : 32)
정수(long) 긴 정수. 일반 정수로 쓰기에 너무 긴 정수로서, 접두사 ‘L’과 함께 사용
부동소수점수
(float)
부동소수점수. 10진수 또는 exponent sign을 포함하는 숫자
복소수(complex) 복소수. 실수와 허수부의 합으로 된 숫자로 표현
부울(Boolean) 참(True) 또는 거짓(False) 값 (1과 0의 숫자값으로도 표현). 맨 앞 대문자 주의
순서(Sequence) 다음과 같은 유형을 포함: 문자열, 유니코드 문자열, basestring, 리스트, 튜플
매핑(Mapping) 사전(dictionary) 형을 포함
집합(Set) 정렬되지 않은 유일한 개체의 모음으로서, 다음과 같은 유형을 포함: set, frozenset
파일(File) 파일 시스템 개체를 사용할 수 있도록 하는데 사용
반복자(Iterator) 컨테이너에 대하여 되풀이.
Python 프로그래밍 – 변수 – 자료형 – 리스트형
• 리스트형
• 대괄호를 이용하여 자료를 정의한다
• 빈 대괄호를 쓰면 빈 리스트를 생성
• 인덱스를 이용하여 각각의 아이템에 접근할 수 있다
• 서로 다른 타입의 데이터들을 저장할 수 있다
• 길이가 고정되어 있지 않다
• 저장된 값을 변경할 수 있다
• 똑같은 내용이 있어도 된다
• 반복문 for에 리스트를 넣으면 쉽게 리스트 순회 가능
• 반복문에서 다루겠음
Python 프로그래밍 – 변수 – 자료형 – 리스트형 - 추가하기
• 리스트형
• 내용 추가하기
• 멤버함수 append 이용
• 리스트의 맨 끝에 내용을 추가한다
• 멤버함수 insert 이용
• 리스트의 원하는 위치에 끼워 넣는다
• 해당 인덱스와 그 뒤에 있던 데이터들은 인덱스가 하나씩 밀려난다
• 리스트 붙이기
• +를 이용하여 리스트를 붙일 수 있다
Python 프로그래밍 – 변수 – 자료형 – 리스트형 – 슬라이스
• 리스트형
• 리스트의 일부를 떼어낼 수 있다
• [n:m]하면 인덱스 n부터 m-1까지 떼어낸다
• [:m] 하면 처음부터 m-1까지 떼어낸다
• [n:] 하면 n부터 끝까지 떼어낸다
• [n:m:p]하면 인덱스 n부터 m까지 떼어내며 p 단위로
인덱스를 건너 뛴다
• [::-p] 하면 뒤집힌 순서의 리스트를 얻을 수 있다
Python 프로그래밍 – 변수 – 자료형 – 리스트형 - 지우기
• 리스트형
• 지우기
• 멤버함수 remove
• 지우고 싶은 데이터를 찾아 지울 수 있다
• del
• 지우고 싶은 인덱스에 있는 데이터를 지울 수 있다
• 멤버함수 pop
• 인자로 넣은 인덱스에 있는 데이터를 반환한다
• 해당 인덱스의 데이터는 사라진다
Python 프로그래밍 – 변수 – 자료형 – 리스트형 - 기타
• 리스트형
• 멤버함수 index
• 인자로 준 값이 리스트에 있는지 살펴본다
• 해당 값이 리스트에 있다면 가장 앞에 있는 인덱스를 반환한다
• 해당 값이 리스트에 없으면 에러가 뜸
• 멤버함수 sort
• 리스트 내용을 순서대로 정리한다.
Python 프로그래밍 – 변수 – 자료형 – 사전형
• 사전형
• 중괄호를 이용하여 자료를 정의한다
• 빈 중괄호를 쓰면 빈 사전형 생성
• 키를 이용하여 각각의 아이템에 접근할 수 있다
• 서로 다른 타입의 데이터들을 저장할 수 있다
• 길이가 고정되어 있지 않다
• 저장된 값을 변경할 수 있다
• 중복되는 키는 있을 수 없다
• 순서가 없다
• 반복문 for에 리스트를 넣으면 쉽게 사전형 순회 가능
• 반복문에서 다루겠음
Python 프로그래밍 – 변수 – 자료형 – 사전형 – 추가/수정/삭제
• 사전형
• 추가하기
• 사전형[새 키] = 값 형태로 쓰면 키와 값이 추가된다
• 값 바꾸기
• 키를 이용해 접근하고 = 를 이용해 값을 바꾼다
• 지우기
• del을 이용하면 기존에 있던 키를 지운다
Python 프로그래밍 – 변수 – 자료형 – 사전형 – 기타
• 사전형
• 멤버함수 items
• 각 키-값 쌍을 튜플로 만들고, 그 튜플들의 배열을 리턴한다
• 멤버함수 keys
• 키들을 리스트 형태로 리턴한다
• 멤버함수 values
• 값들을 리스트 형태로 리턴한다
Python 프로그래밍 – 변수 – 자료형 – 튜플형
• 튜플형
• 소괄호를 이용하여 자료를 정의한다
• 인덱스를 이용하여 각각의 아이템에 접근할 수 있다
• 서로 다른 타입의 데이터들을 저장할 수 있다
• 길이가 고정되어 있다
• 저장한 값을 변경할 수 없다
• -> 값 변경이 불가능하다는 점을 제외하고는 리스트와 유사
• 반복문 for에 리스트를 넣으면 쉽게 튜플형 순회 가능
• 반복문에서 다루겠음
• 사전형의 키로 리스트형은 사용할 수 없지만, 튜플형은 사용할 수 있다
• ->변경되는 자료형인 리스트는 키로 부적합하다는 이유
Python 프로그래밍 – 변수 – 자료형 – 집합형
• 집합형
• 중괄호를 이용하여 자료를 정의한다
• 혹은 set 함수를 이용해 만들 수 있다
• 수학의 집합과 비슷하다
• 중복되는 값이 없다
• 순서가 없다
• 집합 연산과 비슷한 연산을 제공한다
• 서로 다른 타입의 데이터들을 저장할 수 있다
• 길이가 고정되어 있지 않다
• 반복문 for에 리스트를 넣으면 쉽게 집합형 순회 가능
• 반복문에서 다루겠음
Python 프로그래밍 – 변수 – 자료형 – 집합형 – 추가/삭제
• 집합형
• 추가
• 한 번에 하나 추가
• 멤버함수 add를 이용
• 한 번에 여러 개 추가
• 멤버함수 update를 이용
• 삭제
• 특정 값을 삭제
• 멤버함수 remove 사용
Python 프로그래밍 – 변수 – 자료형 – 집합형 – 연산
• 집합형
• 연산
• 교집합 (&)
• 집합형끼리 교집합을 구해 반환
• 합집합 (|)
• 집합형끼리 합집합을 구해 반환
• 차집합 (-)
• 집합형끼리 차집합을 구해 반환
• A<B
• A가 B에 포함되는 지 조사 (boolean 반환)
• A>B
• B가 A에 포함되는 지 조사 (boolean 반환)
Python 프로그래밍 – 변수 – 자료형 – 집합형 – 편리한 사용법
• 집합형
• 중복 제거
• 집합형이 중복을 허용하지 않는다는 특징을 이용해
간단히 중복을 제거하는 데 이용한다
• 집합 특성을 이용한 연산
• 차집합이나 교집합을 쉽게 구할 수 있음
Python 프로그래밍 – 산술 연산
• 덧셈, 뺄셈, 곱셈, 나눗셈, 모듈러는 여타 다른 언어와 같다
• Ex)
• num = 1+1
• num = 1-1
• num = 1*1
• num = 1/1
• num = 1%1
• 지수 연산이 있다
• **연산자를 이용하면 지수 연산을 한다
• Ex)
• n ** m 는 n^m
Python 프로그래밍 – 비트 연산
• 비트 연산자
• NOT : ~
• AND : &
• OR : |
• XOR : ^
• Shift : <<, >>
• n진수 숫자
• 2진수 숫자 이용법
• 숫자 앞에 0b를 붙임
• Ex) 0b1000 (십진수로 8)
• 16진수 숫자 이용법
• 숫자 앞에 0x를 붙임
• 10진수 -> 2진수 형식/8진수 형식/16진수 형식 문자열
• bin(), oct(), hex()
• n진수 문자열 -> 10진수 수
• int(문자열, 진수) 형태로 쓰면 10진수 수로 변환하여 반환
Python 프로그래밍 – 비교 연산
• 비교 연산자
• >, >=, ==, !=, <=, <
• 결과에 따라 True/False 반환
Python 프로그래밍 – 논리 연산
• 논리 연산자
• C나 Java와는 다르다(&&, ||, !를 사용하지 않음)
• AND : and
• OR : or
• NOT : not
Python 프로그래밍 – 문자열 다루기 - 정의
• 문자열
• 정의
• " 로 둘러싸거나 ' 로 둘러쌈 (별 차이는 없음)
• " 나 ' 를 3개 연달아 쓴 것으로 둘러쌈
• n를 직접 쓰지 않고 줄 바꿈이 포함된 문장을 쓸 수 있음
• 줄 바꿈이 어느 위치에서 일어나는지 주의!
• 문자열은 리스트 자료형과 유사하다
• 문자열의 일부를 변경할 수 없음
• string1[0] = "c" 와 같은 일 안 됨
Python 프로그래밍 – 문자열 다루기 – 추가하기
• 문자열
• 추가하기
• +를 이용하여 문자열을 붙일 수 있다
• 빈 문자열을 만들고 추가해 가는 것도 가능
• 문자열 삽입
• 멤버함수 join을 이용하면 인자로 받은 리스트나 문자
열 사이에 해당 문자열을 끼워 넣을 수 있다
Python 프로그래밍 – 문자열 다루기 – 떼어 내기
• 문자열
• 문자열의 n번째 문자를 얻는 방법
• 배열처럼 접근한다
• 인덱스는 0부터 시작
• Ex)
• p = " python "[0]
• 변수 p에 문자 p가 들어 감
• 주어진 범위의 문자열을 떼어내는 방법
• 리스트 형과 같이 [n:m] 형태를 이용하여 떼어낸다
Python 프로그래밍 – 문자열 다루기 – 관련 함수
• 문자열 관련 함수
• len()
• 문자열의 길이를 return
• 인자로 문자열만 넣을 수 있음
• str()
• 인자로 넣은 변수를 string형태로 변환한 것을 return
• string.upper()
• 문자열 객체의 멤버함수
• 알파벳을 전부 대문자로 변환
• string.lower()
• 문자열 객체의 멤버 함수
• 알파벳을 전부 소문자로 변환
• ->문자열 객체 함수와 일반 함수의 차이에 주의
Python 프로그래밍 – 조건문
• If문
• if 뒤 스페이스 후 바로 조건을 쓴다
• else if 대신 elif를 쓴다
• 조건에 True나 0이 아닌 수가 들어가면 해당 조건문 실행
• 조건에 False나 0이 들어가면 다음 조건문으로 넘어가거나 실행되지 않음
• 주의!
• : 를 잊지 말자
• 들여 쓰기(indent)을 잊지 말자
• 파이썬은 switch가 따로 없다.
• 비슷한 기능은 dictionary 자료형을 이용하여 직접 구현해야 한다
Python 프로그래밍 – 반복문
• 반복문에는 for와 while이 있다
• for
• for 변수 in range(반복할 횟수/범위) 형태
• range는 함수임
• for 변수 in 리스트/문자열/튜플형/사전형 형태
• for 변수, 변수 in enumerate(리스트/문자열/튜플형) 형태
• for/else 형태
• while
• while (조건식) 형태
• while/else 형태
• 주의!
• : 를 잊지 말자
• 들여 쓰기(indent)을 잊지 말자
• break/continue
• 반복문에서 사용 가능
Python 프로그래밍 – 반복문 – for
• for
• for 변수 in range(횟수) 형태
• 횟수만큼 반복한다.
• 변수에는 여태껏 반복한 횟수가 들어간다(0부터 시작)
• for 변수 in range(범위) 형태
• 범위를 n, m 형태로 적는다
• 변수에는 n부터 시작하여 m-1까지의 숫자가 들어간다
• 반복하는 횟수는 m-n
• range는 주어진 인자를 이용하여 연속된 숫자의 리스트를 생성하는 함수
• range(stop), range(start, stop), range(start, stop, step) 형태가 있음
• Ex)
• range(5) 하면 [0, 1, 2, 3, 4] 리스트를 생성
• range(2, 4)하면 [2, 3] 리스트 생성
• range(1, 5, 2)하면 [1, 3] 리스트 생성
• step 한 번에 증가할 크기를 의미
Python 프로그래밍 – 반복문 – for
• for
• for 변수 in 리스트/문자열/튜플 형태
• 리스트/문자열/튜플의 길이만큼 반복한다
• 변수에는 반복한 횟수를 인덱스로 하는 리스트 값이 저장된다
• for 변수 in 사전형 형태
• key 개수만큼 반복한다
• 변수에는 키가 들어간다
• 키를 이용하여 사전형 데이터에 접근
Python 프로그래밍 – 반복문 – for
• for
• for 변수1, 변수2 in enumerate(리스트/문자열/튜플)
형태
• enumerate함수는 순서가 있는 자료형(리스트, 문자열,
튜플)을 인자로 받고, 인덱스를 포함하는 enumerate
객체를 리턴한다
• 변수 1에는 인덱스가, 변수 2에는 값이 들어 감
Python 프로그래밍 – 반복문 – for
• for
• for/else 형태
• break으로 끝나지 않고 정상적으로 반복문이 끝났을 경우
else문을 실행
• break으로 나왔을 경우 실행하지 않음
Python 프로그래밍 – 반복문 – while
• while
• while(조건식) 형태
• 조건식이 True인 경우 반복한다
• while/else 형태
• 조건식이 맞지 않을 경우 else를 실행한다
• 정상적으로 루프를 마친 경우
• 아예 처음부터 루프 조건에 맞지 않아 while문 내부를 실행하지 않은 경우
• break를 이용해 루프를 나왔을 경우 else를 실행하지 않는다
Python 프로그래밍 – 함수
• 함수 정의
• def 함수이름(인자): 형태로 쓴다
• 함수에 속하는 코드는 들여 쓴다(indent)
• 줄맞춤이 되어있는 곳까지 함수 영역으로 인식
• return값의 자료형, 인자의 자료형은 따로 명시하지 않는다
• 프로그래머가 주의해서 인자를 넣어야 한다
• return이 없어도 된다
• 줄맞춤이 끝나는 곳까지 함수로 봄
• 주의!
• 들여 쓰기(indent)을 잊지 말자
• :를 잊지 말자
Python 프로그래밍 – 함수
• 람다(Lambda) 함수
• 이름이 없는 함수
• 단순히 일회용으로 쓸 수 있음
• 함수를 정의해두고 쓰는 게 아니라, 필요할 때 잠깐 만들어 쓰고 버릴 수 있음
• 함수가 사용될 수 있는 곳에는 어디라도 람다 정의를 넣을 수 있다
• lambda 인자 : 작업 형태로 정의
• 사용할 때는 (인자) 형태로 인자를 넣음
• 주로 filter 함수, map 함수, reduce 함수와 함께 쓰인다
Python 프로그래밍 – 클래스
• 클래스
• 파이썬은 OOP 언어
• 변수, 함수를 묶어 클래스를 만들 수 있다
• class 이름: 형태
• 상속하지 않을 때
• 권장하지는 않음
• 상속이 없을 경우 밑의 형태에서 상속할 클래스 이름에
object를 쓸 것
• class 이름 (상속할 클래스 이름): 형태
• 상속할 때
• 주의!
• indent를 맞춰주어야 한다
• :를 잊지 말자
Python 프로그래밍 – 클래스 – 생성자
• 클래스
• 생성자
• 객체 인스턴스를 생성하며 초기 설정을 해 줌
• def __init__(인자): 형태
• 멤버함수와 생성자의 맨 처음 인자는 반드시 self
• 파이썬의 관습
• 생성된 인스턴스 자기 자신을 가리킴
• 멤버함수에서 객체의 변수를 가리키기 위해서는 self를 참조해야 함
• 호출할 때는 자동으로 객체를 전달해 주기 때문에 self와 관련된 인자를 쓸 필요가 없음
Python 프로그래밍 – 클래스 – 함수
• 클래스
• 함수 (메소드)
• 멤버함수의 맨 처음 인자는 반드시 self
• 호출할 때는 자동으로 객체를 전달해 주기 때문에 self와
관련된 인자를 쓸 필요가 없음
Python 프로그래밍 – 클래스 – 상속
• 클래스
• 상속
• class 이름(상속할 클래스 이름): 형태
• 부모 클래스의 변수와 함수를 이용할 수 있다
• 부모 클래스 함수를 오버라이딩 할 수 있다
• 같은 이름, 다른 기능
Python 프로그래밍 – 클래스 – 상속
• 클래스
• 상속
• 부모 클래스의 생성자 호출하기
• 자식 클래스에서 직접 부모 클래스를 구한 후, 부모 클래스의
생성자를 호출해 주어야 한다
• super 는 자식 클래스를 지정하여 부모 클래스에 정의한 메소드
에 접근할 수 있는 키워드
• super(자식 클래스 이름, 인스턴스) 형태로 사용
• 자식 클래스에서 생성자를 재정의하지 않았다면 자동으로
부모 클래스의 생성자가 호출된다
Python 프로그래밍 – 클래스 – 상속
• 클래스
• 상속
• 부모 변수 접근하기
• 클래스 내에서
• self를 이용하여 접근
혹은 super를 이용하
여 얻은 parent를 이
용
• 외부에서
• 인스턴스.변수이름
으로 접근할 수 있다
Python 프로그래밍 – 클래스 – 상속
• 클래스
• 상속
• 오버라이딩
• 자식 클래스에 함수 이름과 인자 수가 같은 함수를
정의하면 자식 클래스에서 정의한 함수를 호출한다
Python 프로그래밍 – 입출력 – 출력
• 출력하는 함수
• print
• 포맷 스트링 출력하기
• print "%d %s" %(num1, string1)
• 문자열 합쳐 출력하기
• +
• 문자열을 그대로 붙일 수 있음
• ,
• 띄어쓰기한 문자열을 붙일 수 있음
• 문자열을 합칠 때가 아니더라도 ,가 붙으면 띄어쓰기 함
Python 프로그래밍 – 입출력 – 입력
• 입력 값을 받는 함수 (파이썬 2.7)
• input과 raw_input
• 인자로 넣은 메시지를 출력한 뒤 입력을 받는다
• 이 때도 포맷 스트링을 출력할 수 있다
• input
• 받은 입력 값을 적절한 자료형에 맞게 반환한다
• 1을 입력하면 정수, 1.0을 입력하면 실수, "나 '로 감싼 것은 문자열로 반환
• raw_input
• 받은 입력 값을 문자열로 반환한다
• 파이썬 3부터는 input 함수가 raw_input과 같다
• 문자열 반환함. raw_input 함수는 없어짐
• ->문자열 외 자료형은 직접 자료형 변환해야 함
Python 프로그래밍 – 입출력 – 파일 I/O
• 파일 열기
• open(파일 이름, 모드)
• 모드는 r, w, r+, a가 있다
• r : read-only
• w : write-only
• r+ : read and write
• a : append
• r, w, a 뒤에 b가 붙으면 binary
• 함수는 연 파일 객체를 반환한다
• 파일 닫기
• 멤버함수 close
• 파일 객체에 속한 메소드
Python 프로그래밍 – 입출력 – 파일 I/O
• 파일 읽기
• 읽기 가능한 모드에서 가능
• 멤버함수 read
• 인자가 없을 시 파일 내용 전체를 문자열로 반환한다
• 인자로 숫자를 넣을 시 n글자(n바이트)만큼 읽은 문자열을 반환
• 멤버함수 readline
• 인자가 없을 시 파일에서 한 줄을 읽어 문자열로 반환한다
• 인자로 숫자를 넣을 시 n글자(n바이트)만큼 읽은 문자열을 반환
• 멤버함수 readlines
• 인자가 없을 시 파일 내용 전체 읽고, 각 줄을 요소로 갖는 리스트를 반환한다
• 인자로 숫자를 넣을 시 n 줄을 읽고, 리스트로 반환
• 오른쪽 예는 모두 파일을 끝까지 읽고 콘솔에 쓰는 코드
Python 프로그래밍 – 입출력 – 파일 I/O
• 파일 쓰기
• 쓰기 가능한 모드에서 가능
• 멤버함수 write
• 인자로 str을 받는다
• 문자열 쓰기만 가능
• 버퍼링
• 파일에 write할 시 매번 실제로 파일에 쓰지는 않는다
• 어느정도 버퍼에 넣어두었다가 한 번에 저장한다
• ->저장한 뒤 당장 읽고 싶다면 버퍼를 비워주어야 한다
• 그 방법 중 하나가 파일을 close하는 것
Python 프로그래밍 – 입출력 – 파일 I/O
• with as
• 매번 파일을 close하는 게 귀찮고 헷갈림
• ->with as를 이용하면 편하게 처리할 수 있다
• with open(인자) as 파일 객체 이름 : 형태
• with as 구문을 벗어나면 자동으로 close를 호출해 준다
Python 프로그래밍 – 주석
• #을 앞에 붙이면 그 줄을 주석으로 만든다
• C의 //와 같음
• " 혹은 '를 3개 연달아 붙인 것으로 둘러싸면 그 안은 주석이 된다
• Ex) " " " 주석 " " ", ' ' ' 주석 ' ' '
• 주의!
• 인덴트를 맞춰주어야 한다
• #은 인덴트 맞춤 필요 없음
• " " "와 ' ''는 문자열로도 이용된다.
• 위치에 따라 (변수 선언, print 뒤 등) 문자열로 이용될 수 있으므로 주의
Python 프로그래밍 – 라이브러리
• 라이브러리를 도구상자라 비유해보자. 그리고 모듈과 패키지에 대해 생각해 보자.
• 모듈 (module)
• 여러 기능을 제공하는 클래스나 함수
• 도구 상자 속 각각의 도구와 같음
• 패키지(package)
• 복수의 모듈을 하나로 묶은 것
• 드라이버 세트로 비유할 수 있음
패키지
패키지
모듈모듈 모듈 모듈
Python 프로그래밍 – 라이브러리 사용
• import
• 도구 상자에서 도구를 찾아 손에 쥐는 것
• import 모듈명 형태로 이용
• as
• 모듈의 클래스나 함수를 이용하기 위해 매번 모듈의 이름을 씀
• ->모듈 이름이 길다면 불편함
• as 키워드를 이용하면 모듈에 간단한 이름을 붙여 사용할 수 있음
• import 문장 맨 뒤에 씀
• from
• 패키지에서 특정 모듈만 얻어오거나, 모듈에서 특정 클래스와 함수만 사용하도록 할 수 있음
• from 패키지(모듈)이름 import 모듈 이름(클래스/함수 이름) 형태로 이용
• Universal import
• import에 *을 쓰면 해당 모듈에 속한 함수들을 전부 모듈 이름을 쓰지 않고 호출할 수 있음
• 같은 이름의 함수나 변수가 있다면 혼란이 생길 수 있으므로 권장하지는 않음
Python 프로그래밍 – 예외처리
• 에러의 종류
• 파이썬 구문(문법)이 잘못되었을 때
• ->아예 해석 자체가 안되므로 실행이 안 됨
• 실행 중에 데이터를 처리할 수 없을 때
• ->실행하지 않으면 에러가 되지 않는다.
• ->이것이 예외에 속함
• try except를 이용
• try로 감싼 코드에서 예외가 생기면 except 코드를 실행
• except에서 예외의 종류를 잡는 법
• except Exception as 변수이름 :
• 변수에 예외에 대한 정보를 넣어 줌
과제
• Codecademy
Codecademy
• codecademy 사이트
• 파이썬 뿐만 아니라 여러 강의가 있음. 사이트에서 실습도 가능
• https://www.codecademy.com
• 가입해서 파이썬 강의를 클리어 해보기
부록
• 참고 사이트
참고 사이트
• 점프 투 파이썬 온라인 책
• https://wikidocs.net/book/1

Python

  • 1.
  • 2.
    목차 • Python에 대하여... •Python 특징 • Python 프로그래밍 • 변수 • 연산 • 문자열 다루기 • 조건문 • 반복문 • 함수 • 클래스 • 입출력 • 주석 • 라이브러리 • 예외 처리 • 과제 • Codecademy • 부록 • 참고 사이트
  • 3.
  • 4.
    Python 특징 • 파이썬은인터프리터 언어다. • C, C++, JAVA 등의 언어는 컴파일 언어 • 컴파일 결과로 기계어를 뽑아 냄 • 이미 만들어진 기계어를 이용하여 프로그램이 실행 • 인터프리터는 고급 언어로 작성된 코드를 해석하여 실행 • 컴파일 된 기계어를 이용하는 게 아니라, 그때 그때 필요한 기계어를 생성해 씀 • 파이썬 버전 • 2와 3이 있음 • 버전 2는 2.7까지 나왔지만, 2.8이 배포될 계획은 없으며, 2020년까지 지원한다고 함 • 버전 2만 가능한 라이브러리때문에 2를 쓰는 경우도 있지만, 언젠가는 3으로 가야 함
  • 5.
    Python 특징 • 들여쓰기(인덴트,indent) • 다른 언어들과 달리 파이썬은 들여쓰기를 강제함 • C나 Java에서 반복문, 함수의 범위를 위해 중괄호를 사용한 것처럼, 파이썬은 인덴트 를 이용하여 구분한다 • 들여쓰기 방법 • 탭 또는 space를 이용 • -> 파이썬 3에서는 탭과 스페이스를 섞어 쓰면 오류 발생 • 에디터에 따라 탭을 누르면 다수의 스페이스를 쓸 때도 있으니 주의한다 • 프로그램 전체에 일관성만 있다면 취향대로 씀
  • 6.
    Python 특징 –종류 • Cpython • C로 작성된 인터프리터를 이용하는 파이썬 • 원조 • 가장 많이 쓰임 (일반적으로 파이썬은 Cpython을 의미) • Jython • 자바로 작상된 인터프리터를 이용하는 파이썬 • 자바 가상 머신에서 동작 • 모든 자바 클래스를 바로 불러올 수 있음 • PyPy • 파이썬으로 작성된 파이썬 인터프리터
  • 7.
    PYTHON 프로그래밍 • 변수 •연산 • 문자열 다루기 • 조건문 • 반복문 • 함수 • 클래스 • 입출력 • 주석 • 라이브러리 • 예외 처리
  • 8.
    Python 프로그래밍 –변수 • C나 C++, Java와는 다르게 앞에 변수를 선언할 때 자료형을 명시하지 않는다 • 넣는 값에 따라 자료형이 자동으로 결정됨 • 단순히 변수이름 = 값 하면 됨 • Ex) • numVar = 1 • 타입을 확인을 하고싶다면? • type()함수 이용
  • 9.
    Python 프로그래밍 –변수 • 자료형 자료형 설명 없음(None) NULL 값 개체 정수(int) 일반 정수 (예 : 32) 정수(long) 긴 정수. 일반 정수로 쓰기에 너무 긴 정수로서, 접두사 ‘L’과 함께 사용 부동소수점수 (float) 부동소수점수. 10진수 또는 exponent sign을 포함하는 숫자 복소수(complex) 복소수. 실수와 허수부의 합으로 된 숫자로 표현 부울(Boolean) 참(True) 또는 거짓(False) 값 (1과 0의 숫자값으로도 표현). 맨 앞 대문자 주의 순서(Sequence) 다음과 같은 유형을 포함: 문자열, 유니코드 문자열, basestring, 리스트, 튜플 매핑(Mapping) 사전(dictionary) 형을 포함 집합(Set) 정렬되지 않은 유일한 개체의 모음으로서, 다음과 같은 유형을 포함: set, frozenset 파일(File) 파일 시스템 개체를 사용할 수 있도록 하는데 사용 반복자(Iterator) 컨테이너에 대하여 되풀이.
  • 10.
    Python 프로그래밍 –변수 – 자료형 – 리스트형 • 리스트형 • 대괄호를 이용하여 자료를 정의한다 • 빈 대괄호를 쓰면 빈 리스트를 생성 • 인덱스를 이용하여 각각의 아이템에 접근할 수 있다 • 서로 다른 타입의 데이터들을 저장할 수 있다 • 길이가 고정되어 있지 않다 • 저장된 값을 변경할 수 있다 • 똑같은 내용이 있어도 된다 • 반복문 for에 리스트를 넣으면 쉽게 리스트 순회 가능 • 반복문에서 다루겠음
  • 11.
    Python 프로그래밍 –변수 – 자료형 – 리스트형 - 추가하기 • 리스트형 • 내용 추가하기 • 멤버함수 append 이용 • 리스트의 맨 끝에 내용을 추가한다 • 멤버함수 insert 이용 • 리스트의 원하는 위치에 끼워 넣는다 • 해당 인덱스와 그 뒤에 있던 데이터들은 인덱스가 하나씩 밀려난다 • 리스트 붙이기 • +를 이용하여 리스트를 붙일 수 있다
  • 12.
    Python 프로그래밍 –변수 – 자료형 – 리스트형 – 슬라이스 • 리스트형 • 리스트의 일부를 떼어낼 수 있다 • [n:m]하면 인덱스 n부터 m-1까지 떼어낸다 • [:m] 하면 처음부터 m-1까지 떼어낸다 • [n:] 하면 n부터 끝까지 떼어낸다 • [n:m:p]하면 인덱스 n부터 m까지 떼어내며 p 단위로 인덱스를 건너 뛴다 • [::-p] 하면 뒤집힌 순서의 리스트를 얻을 수 있다
  • 13.
    Python 프로그래밍 –변수 – 자료형 – 리스트형 - 지우기 • 리스트형 • 지우기 • 멤버함수 remove • 지우고 싶은 데이터를 찾아 지울 수 있다 • del • 지우고 싶은 인덱스에 있는 데이터를 지울 수 있다 • 멤버함수 pop • 인자로 넣은 인덱스에 있는 데이터를 반환한다 • 해당 인덱스의 데이터는 사라진다
  • 14.
    Python 프로그래밍 –변수 – 자료형 – 리스트형 - 기타 • 리스트형 • 멤버함수 index • 인자로 준 값이 리스트에 있는지 살펴본다 • 해당 값이 리스트에 있다면 가장 앞에 있는 인덱스를 반환한다 • 해당 값이 리스트에 없으면 에러가 뜸 • 멤버함수 sort • 리스트 내용을 순서대로 정리한다.
  • 15.
    Python 프로그래밍 –변수 – 자료형 – 사전형 • 사전형 • 중괄호를 이용하여 자료를 정의한다 • 빈 중괄호를 쓰면 빈 사전형 생성 • 키를 이용하여 각각의 아이템에 접근할 수 있다 • 서로 다른 타입의 데이터들을 저장할 수 있다 • 길이가 고정되어 있지 않다 • 저장된 값을 변경할 수 있다 • 중복되는 키는 있을 수 없다 • 순서가 없다 • 반복문 for에 리스트를 넣으면 쉽게 사전형 순회 가능 • 반복문에서 다루겠음
  • 16.
    Python 프로그래밍 –변수 – 자료형 – 사전형 – 추가/수정/삭제 • 사전형 • 추가하기 • 사전형[새 키] = 값 형태로 쓰면 키와 값이 추가된다 • 값 바꾸기 • 키를 이용해 접근하고 = 를 이용해 값을 바꾼다 • 지우기 • del을 이용하면 기존에 있던 키를 지운다
  • 17.
    Python 프로그래밍 –변수 – 자료형 – 사전형 – 기타 • 사전형 • 멤버함수 items • 각 키-값 쌍을 튜플로 만들고, 그 튜플들의 배열을 리턴한다 • 멤버함수 keys • 키들을 리스트 형태로 리턴한다 • 멤버함수 values • 값들을 리스트 형태로 리턴한다
  • 18.
    Python 프로그래밍 –변수 – 자료형 – 튜플형 • 튜플형 • 소괄호를 이용하여 자료를 정의한다 • 인덱스를 이용하여 각각의 아이템에 접근할 수 있다 • 서로 다른 타입의 데이터들을 저장할 수 있다 • 길이가 고정되어 있다 • 저장한 값을 변경할 수 없다 • -> 값 변경이 불가능하다는 점을 제외하고는 리스트와 유사 • 반복문 for에 리스트를 넣으면 쉽게 튜플형 순회 가능 • 반복문에서 다루겠음 • 사전형의 키로 리스트형은 사용할 수 없지만, 튜플형은 사용할 수 있다 • ->변경되는 자료형인 리스트는 키로 부적합하다는 이유
  • 19.
    Python 프로그래밍 –변수 – 자료형 – 집합형 • 집합형 • 중괄호를 이용하여 자료를 정의한다 • 혹은 set 함수를 이용해 만들 수 있다 • 수학의 집합과 비슷하다 • 중복되는 값이 없다 • 순서가 없다 • 집합 연산과 비슷한 연산을 제공한다 • 서로 다른 타입의 데이터들을 저장할 수 있다 • 길이가 고정되어 있지 않다 • 반복문 for에 리스트를 넣으면 쉽게 집합형 순회 가능 • 반복문에서 다루겠음
  • 20.
    Python 프로그래밍 –변수 – 자료형 – 집합형 – 추가/삭제 • 집합형 • 추가 • 한 번에 하나 추가 • 멤버함수 add를 이용 • 한 번에 여러 개 추가 • 멤버함수 update를 이용 • 삭제 • 특정 값을 삭제 • 멤버함수 remove 사용
  • 21.
    Python 프로그래밍 –변수 – 자료형 – 집합형 – 연산 • 집합형 • 연산 • 교집합 (&) • 집합형끼리 교집합을 구해 반환 • 합집합 (|) • 집합형끼리 합집합을 구해 반환 • 차집합 (-) • 집합형끼리 차집합을 구해 반환 • A<B • A가 B에 포함되는 지 조사 (boolean 반환) • A>B • B가 A에 포함되는 지 조사 (boolean 반환)
  • 22.
    Python 프로그래밍 –변수 – 자료형 – 집합형 – 편리한 사용법 • 집합형 • 중복 제거 • 집합형이 중복을 허용하지 않는다는 특징을 이용해 간단히 중복을 제거하는 데 이용한다 • 집합 특성을 이용한 연산 • 차집합이나 교집합을 쉽게 구할 수 있음
  • 23.
    Python 프로그래밍 –산술 연산 • 덧셈, 뺄셈, 곱셈, 나눗셈, 모듈러는 여타 다른 언어와 같다 • Ex) • num = 1+1 • num = 1-1 • num = 1*1 • num = 1/1 • num = 1%1 • 지수 연산이 있다 • **연산자를 이용하면 지수 연산을 한다 • Ex) • n ** m 는 n^m
  • 24.
    Python 프로그래밍 –비트 연산 • 비트 연산자 • NOT : ~ • AND : & • OR : | • XOR : ^ • Shift : <<, >> • n진수 숫자 • 2진수 숫자 이용법 • 숫자 앞에 0b를 붙임 • Ex) 0b1000 (십진수로 8) • 16진수 숫자 이용법 • 숫자 앞에 0x를 붙임 • 10진수 -> 2진수 형식/8진수 형식/16진수 형식 문자열 • bin(), oct(), hex() • n진수 문자열 -> 10진수 수 • int(문자열, 진수) 형태로 쓰면 10진수 수로 변환하여 반환
  • 25.
    Python 프로그래밍 –비교 연산 • 비교 연산자 • >, >=, ==, !=, <=, < • 결과에 따라 True/False 반환
  • 26.
    Python 프로그래밍 –논리 연산 • 논리 연산자 • C나 Java와는 다르다(&&, ||, !를 사용하지 않음) • AND : and • OR : or • NOT : not
  • 27.
    Python 프로그래밍 –문자열 다루기 - 정의 • 문자열 • 정의 • " 로 둘러싸거나 ' 로 둘러쌈 (별 차이는 없음) • " 나 ' 를 3개 연달아 쓴 것으로 둘러쌈 • n를 직접 쓰지 않고 줄 바꿈이 포함된 문장을 쓸 수 있음 • 줄 바꿈이 어느 위치에서 일어나는지 주의! • 문자열은 리스트 자료형과 유사하다 • 문자열의 일부를 변경할 수 없음 • string1[0] = "c" 와 같은 일 안 됨
  • 28.
    Python 프로그래밍 –문자열 다루기 – 추가하기 • 문자열 • 추가하기 • +를 이용하여 문자열을 붙일 수 있다 • 빈 문자열을 만들고 추가해 가는 것도 가능 • 문자열 삽입 • 멤버함수 join을 이용하면 인자로 받은 리스트나 문자 열 사이에 해당 문자열을 끼워 넣을 수 있다
  • 29.
    Python 프로그래밍 –문자열 다루기 – 떼어 내기 • 문자열 • 문자열의 n번째 문자를 얻는 방법 • 배열처럼 접근한다 • 인덱스는 0부터 시작 • Ex) • p = " python "[0] • 변수 p에 문자 p가 들어 감 • 주어진 범위의 문자열을 떼어내는 방법 • 리스트 형과 같이 [n:m] 형태를 이용하여 떼어낸다
  • 30.
    Python 프로그래밍 –문자열 다루기 – 관련 함수 • 문자열 관련 함수 • len() • 문자열의 길이를 return • 인자로 문자열만 넣을 수 있음 • str() • 인자로 넣은 변수를 string형태로 변환한 것을 return • string.upper() • 문자열 객체의 멤버함수 • 알파벳을 전부 대문자로 변환 • string.lower() • 문자열 객체의 멤버 함수 • 알파벳을 전부 소문자로 변환 • ->문자열 객체 함수와 일반 함수의 차이에 주의
  • 31.
    Python 프로그래밍 –조건문 • If문 • if 뒤 스페이스 후 바로 조건을 쓴다 • else if 대신 elif를 쓴다 • 조건에 True나 0이 아닌 수가 들어가면 해당 조건문 실행 • 조건에 False나 0이 들어가면 다음 조건문으로 넘어가거나 실행되지 않음 • 주의! • : 를 잊지 말자 • 들여 쓰기(indent)을 잊지 말자 • 파이썬은 switch가 따로 없다. • 비슷한 기능은 dictionary 자료형을 이용하여 직접 구현해야 한다
  • 32.
    Python 프로그래밍 –반복문 • 반복문에는 for와 while이 있다 • for • for 변수 in range(반복할 횟수/범위) 형태 • range는 함수임 • for 변수 in 리스트/문자열/튜플형/사전형 형태 • for 변수, 변수 in enumerate(리스트/문자열/튜플형) 형태 • for/else 형태 • while • while (조건식) 형태 • while/else 형태 • 주의! • : 를 잊지 말자 • 들여 쓰기(indent)을 잊지 말자 • break/continue • 반복문에서 사용 가능
  • 33.
    Python 프로그래밍 –반복문 – for • for • for 변수 in range(횟수) 형태 • 횟수만큼 반복한다. • 변수에는 여태껏 반복한 횟수가 들어간다(0부터 시작) • for 변수 in range(범위) 형태 • 범위를 n, m 형태로 적는다 • 변수에는 n부터 시작하여 m-1까지의 숫자가 들어간다 • 반복하는 횟수는 m-n • range는 주어진 인자를 이용하여 연속된 숫자의 리스트를 생성하는 함수 • range(stop), range(start, stop), range(start, stop, step) 형태가 있음 • Ex) • range(5) 하면 [0, 1, 2, 3, 4] 리스트를 생성 • range(2, 4)하면 [2, 3] 리스트 생성 • range(1, 5, 2)하면 [1, 3] 리스트 생성 • step 한 번에 증가할 크기를 의미
  • 34.
    Python 프로그래밍 –반복문 – for • for • for 변수 in 리스트/문자열/튜플 형태 • 리스트/문자열/튜플의 길이만큼 반복한다 • 변수에는 반복한 횟수를 인덱스로 하는 리스트 값이 저장된다 • for 변수 in 사전형 형태 • key 개수만큼 반복한다 • 변수에는 키가 들어간다 • 키를 이용하여 사전형 데이터에 접근
  • 35.
    Python 프로그래밍 –반복문 – for • for • for 변수1, 변수2 in enumerate(리스트/문자열/튜플) 형태 • enumerate함수는 순서가 있는 자료형(리스트, 문자열, 튜플)을 인자로 받고, 인덱스를 포함하는 enumerate 객체를 리턴한다 • 변수 1에는 인덱스가, 변수 2에는 값이 들어 감
  • 36.
    Python 프로그래밍 –반복문 – for • for • for/else 형태 • break으로 끝나지 않고 정상적으로 반복문이 끝났을 경우 else문을 실행 • break으로 나왔을 경우 실행하지 않음
  • 37.
    Python 프로그래밍 –반복문 – while • while • while(조건식) 형태 • 조건식이 True인 경우 반복한다 • while/else 형태 • 조건식이 맞지 않을 경우 else를 실행한다 • 정상적으로 루프를 마친 경우 • 아예 처음부터 루프 조건에 맞지 않아 while문 내부를 실행하지 않은 경우 • break를 이용해 루프를 나왔을 경우 else를 실행하지 않는다
  • 38.
    Python 프로그래밍 –함수 • 함수 정의 • def 함수이름(인자): 형태로 쓴다 • 함수에 속하는 코드는 들여 쓴다(indent) • 줄맞춤이 되어있는 곳까지 함수 영역으로 인식 • return값의 자료형, 인자의 자료형은 따로 명시하지 않는다 • 프로그래머가 주의해서 인자를 넣어야 한다 • return이 없어도 된다 • 줄맞춤이 끝나는 곳까지 함수로 봄 • 주의! • 들여 쓰기(indent)을 잊지 말자 • :를 잊지 말자
  • 39.
    Python 프로그래밍 –함수 • 람다(Lambda) 함수 • 이름이 없는 함수 • 단순히 일회용으로 쓸 수 있음 • 함수를 정의해두고 쓰는 게 아니라, 필요할 때 잠깐 만들어 쓰고 버릴 수 있음 • 함수가 사용될 수 있는 곳에는 어디라도 람다 정의를 넣을 수 있다 • lambda 인자 : 작업 형태로 정의 • 사용할 때는 (인자) 형태로 인자를 넣음 • 주로 filter 함수, map 함수, reduce 함수와 함께 쓰인다
  • 40.
    Python 프로그래밍 –클래스 • 클래스 • 파이썬은 OOP 언어 • 변수, 함수를 묶어 클래스를 만들 수 있다 • class 이름: 형태 • 상속하지 않을 때 • 권장하지는 않음 • 상속이 없을 경우 밑의 형태에서 상속할 클래스 이름에 object를 쓸 것 • class 이름 (상속할 클래스 이름): 형태 • 상속할 때 • 주의! • indent를 맞춰주어야 한다 • :를 잊지 말자
  • 41.
    Python 프로그래밍 –클래스 – 생성자 • 클래스 • 생성자 • 객체 인스턴스를 생성하며 초기 설정을 해 줌 • def __init__(인자): 형태 • 멤버함수와 생성자의 맨 처음 인자는 반드시 self • 파이썬의 관습 • 생성된 인스턴스 자기 자신을 가리킴 • 멤버함수에서 객체의 변수를 가리키기 위해서는 self를 참조해야 함 • 호출할 때는 자동으로 객체를 전달해 주기 때문에 self와 관련된 인자를 쓸 필요가 없음
  • 42.
    Python 프로그래밍 –클래스 – 함수 • 클래스 • 함수 (메소드) • 멤버함수의 맨 처음 인자는 반드시 self • 호출할 때는 자동으로 객체를 전달해 주기 때문에 self와 관련된 인자를 쓸 필요가 없음
  • 43.
    Python 프로그래밍 –클래스 – 상속 • 클래스 • 상속 • class 이름(상속할 클래스 이름): 형태 • 부모 클래스의 변수와 함수를 이용할 수 있다 • 부모 클래스 함수를 오버라이딩 할 수 있다 • 같은 이름, 다른 기능
  • 44.
    Python 프로그래밍 –클래스 – 상속 • 클래스 • 상속 • 부모 클래스의 생성자 호출하기 • 자식 클래스에서 직접 부모 클래스를 구한 후, 부모 클래스의 생성자를 호출해 주어야 한다 • super 는 자식 클래스를 지정하여 부모 클래스에 정의한 메소드 에 접근할 수 있는 키워드 • super(자식 클래스 이름, 인스턴스) 형태로 사용 • 자식 클래스에서 생성자를 재정의하지 않았다면 자동으로 부모 클래스의 생성자가 호출된다
  • 45.
    Python 프로그래밍 –클래스 – 상속 • 클래스 • 상속 • 부모 변수 접근하기 • 클래스 내에서 • self를 이용하여 접근 혹은 super를 이용하 여 얻은 parent를 이 용 • 외부에서 • 인스턴스.변수이름 으로 접근할 수 있다
  • 46.
    Python 프로그래밍 –클래스 – 상속 • 클래스 • 상속 • 오버라이딩 • 자식 클래스에 함수 이름과 인자 수가 같은 함수를 정의하면 자식 클래스에서 정의한 함수를 호출한다
  • 47.
    Python 프로그래밍 –입출력 – 출력 • 출력하는 함수 • print • 포맷 스트링 출력하기 • print "%d %s" %(num1, string1) • 문자열 합쳐 출력하기 • + • 문자열을 그대로 붙일 수 있음 • , • 띄어쓰기한 문자열을 붙일 수 있음 • 문자열을 합칠 때가 아니더라도 ,가 붙으면 띄어쓰기 함
  • 48.
    Python 프로그래밍 –입출력 – 입력 • 입력 값을 받는 함수 (파이썬 2.7) • input과 raw_input • 인자로 넣은 메시지를 출력한 뒤 입력을 받는다 • 이 때도 포맷 스트링을 출력할 수 있다 • input • 받은 입력 값을 적절한 자료형에 맞게 반환한다 • 1을 입력하면 정수, 1.0을 입력하면 실수, "나 '로 감싼 것은 문자열로 반환 • raw_input • 받은 입력 값을 문자열로 반환한다 • 파이썬 3부터는 input 함수가 raw_input과 같다 • 문자열 반환함. raw_input 함수는 없어짐 • ->문자열 외 자료형은 직접 자료형 변환해야 함
  • 49.
    Python 프로그래밍 –입출력 – 파일 I/O • 파일 열기 • open(파일 이름, 모드) • 모드는 r, w, r+, a가 있다 • r : read-only • w : write-only • r+ : read and write • a : append • r, w, a 뒤에 b가 붙으면 binary • 함수는 연 파일 객체를 반환한다 • 파일 닫기 • 멤버함수 close • 파일 객체에 속한 메소드
  • 50.
    Python 프로그래밍 –입출력 – 파일 I/O • 파일 읽기 • 읽기 가능한 모드에서 가능 • 멤버함수 read • 인자가 없을 시 파일 내용 전체를 문자열로 반환한다 • 인자로 숫자를 넣을 시 n글자(n바이트)만큼 읽은 문자열을 반환 • 멤버함수 readline • 인자가 없을 시 파일에서 한 줄을 읽어 문자열로 반환한다 • 인자로 숫자를 넣을 시 n글자(n바이트)만큼 읽은 문자열을 반환 • 멤버함수 readlines • 인자가 없을 시 파일 내용 전체 읽고, 각 줄을 요소로 갖는 리스트를 반환한다 • 인자로 숫자를 넣을 시 n 줄을 읽고, 리스트로 반환 • 오른쪽 예는 모두 파일을 끝까지 읽고 콘솔에 쓰는 코드
  • 51.
    Python 프로그래밍 –입출력 – 파일 I/O • 파일 쓰기 • 쓰기 가능한 모드에서 가능 • 멤버함수 write • 인자로 str을 받는다 • 문자열 쓰기만 가능 • 버퍼링 • 파일에 write할 시 매번 실제로 파일에 쓰지는 않는다 • 어느정도 버퍼에 넣어두었다가 한 번에 저장한다 • ->저장한 뒤 당장 읽고 싶다면 버퍼를 비워주어야 한다 • 그 방법 중 하나가 파일을 close하는 것
  • 52.
    Python 프로그래밍 –입출력 – 파일 I/O • with as • 매번 파일을 close하는 게 귀찮고 헷갈림 • ->with as를 이용하면 편하게 처리할 수 있다 • with open(인자) as 파일 객체 이름 : 형태 • with as 구문을 벗어나면 자동으로 close를 호출해 준다
  • 53.
    Python 프로그래밍 –주석 • #을 앞에 붙이면 그 줄을 주석으로 만든다 • C의 //와 같음 • " 혹은 '를 3개 연달아 붙인 것으로 둘러싸면 그 안은 주석이 된다 • Ex) " " " 주석 " " ", ' ' ' 주석 ' ' ' • 주의! • 인덴트를 맞춰주어야 한다 • #은 인덴트 맞춤 필요 없음 • " " "와 ' ''는 문자열로도 이용된다. • 위치에 따라 (변수 선언, print 뒤 등) 문자열로 이용될 수 있으므로 주의
  • 54.
    Python 프로그래밍 –라이브러리 • 라이브러리를 도구상자라 비유해보자. 그리고 모듈과 패키지에 대해 생각해 보자. • 모듈 (module) • 여러 기능을 제공하는 클래스나 함수 • 도구 상자 속 각각의 도구와 같음 • 패키지(package) • 복수의 모듈을 하나로 묶은 것 • 드라이버 세트로 비유할 수 있음 패키지 패키지 모듈모듈 모듈 모듈
  • 55.
    Python 프로그래밍 –라이브러리 사용 • import • 도구 상자에서 도구를 찾아 손에 쥐는 것 • import 모듈명 형태로 이용 • as • 모듈의 클래스나 함수를 이용하기 위해 매번 모듈의 이름을 씀 • ->모듈 이름이 길다면 불편함 • as 키워드를 이용하면 모듈에 간단한 이름을 붙여 사용할 수 있음 • import 문장 맨 뒤에 씀 • from • 패키지에서 특정 모듈만 얻어오거나, 모듈에서 특정 클래스와 함수만 사용하도록 할 수 있음 • from 패키지(모듈)이름 import 모듈 이름(클래스/함수 이름) 형태로 이용 • Universal import • import에 *을 쓰면 해당 모듈에 속한 함수들을 전부 모듈 이름을 쓰지 않고 호출할 수 있음 • 같은 이름의 함수나 변수가 있다면 혼란이 생길 수 있으므로 권장하지는 않음
  • 56.
    Python 프로그래밍 –예외처리 • 에러의 종류 • 파이썬 구문(문법)이 잘못되었을 때 • ->아예 해석 자체가 안되므로 실행이 안 됨 • 실행 중에 데이터를 처리할 수 없을 때 • ->실행하지 않으면 에러가 되지 않는다. • ->이것이 예외에 속함 • try except를 이용 • try로 감싼 코드에서 예외가 생기면 except 코드를 실행 • except에서 예외의 종류를 잡는 법 • except Exception as 변수이름 : • 변수에 예외에 대한 정보를 넣어 줌
  • 57.
  • 58.
    Codecademy • codecademy 사이트 •파이썬 뿐만 아니라 여러 강의가 있음. 사이트에서 실습도 가능 • https://www.codecademy.com • 가입해서 파이썬 강의를 클리어 해보기
  • 59.
  • 60.
    참고 사이트 • 점프투 파이썬 온라인 책 • https://wikidocs.net/book/1