#1. 예외 처리
예외의 개념과 사례
- 예외 처리(exception handling)
- 실제 프로그램 만들기 위해 알아야 함
- 예외
- 프로그램 개발하면서 예상하지 못한 상황이 발생하는 것
- 대표적인 사례
- 사용자의 입력 오류
- 예시
- 웹사이트에 새로 가입을 위해 아이디 생성
- 일반적으로 아이디 → 영뭊자, 숫자
- 한글 입력 시도
- 문제 없이 한글이 저장되면 사용자가 자칫 로그인 못 할 수도 있음
- 또다른 사례
- Ms 오피스의 자동 저장 기능
- 작업 중 정전 등의 이유로 갑자기 종료됐을 대를 대비 → 작업 중간에 자동으로 저장
예측 가능한 예외와 예측 불가능한 예외
- 예의 종류 두 가지
- 예측 가능한 예외
- 예측 불가능한 예외
- 예측 가능한 예외
- 발생 여부를 개발자가 사전에 인지할 수 있는 예외
- 예시
- ‘텍스 트 박스에 사용자가 실수로 잘못된 값을 입력할 것 같다
- 사용자가 실제로 존재하지 않는 파일에 저장할 것 같다.’
- 사용자 입력란에 값이 잘못 입력 → if문 사용하여 잘못 입력햇다고 응답
- 예측 불가능한 예외
- 대표적 사례
- 매우 많은 파일을 처리할 때 문제가 발생할 수 있음
- 5,000개의 파일이 한 디렉터리에 있고 그 파일명들을 넘겨 받아 파일을 하나씩 읽어들이는 프로그램을 만듦
- 그런데 파일을 읽다가 어떤 파일 은 실제로 안에 내용이 없을 수 있는데, 이런 경우에도 어떤 처리를 하지 못하고 넘어감
- 또는 파일을 읽고 있는데 다른 사용자에 의해 해당 파일이 삭제되어 읽어들이는 시점에 해당 파 일이 사라지는 경우도 발생할 수 있음
- 이외에도 인덱스의 범위를 넘어가는 리스트의 호출
- 정수를 0으로 나누는 것 등에 대한 문제가 생길 수 있음
- 이 경우 → 인터프리터가 자동으로 이것이 예외라고 사용자에게 알림
- 대부분은 이러한 예외가 발생하면서 프로그램이 종료되므로 적절한 조치 해야 함
- 단순히 파일이 없다고 알려주는 것이 아니라 파일이 없기 때문에 추가로 해야 하는 조 치 있음
- →그것을 예외 처리 구문에 추가해야 한다
- 예를 들어, 처리해야 할 파일이 없다 면 파일이 없다고 기록을 남기고 다음 파일을 처리하는 방식으로 프로그램을 작성해야 함
- 예외 처리 중요한 이유
- 프로그램도 일종의 제품임
- 완성도를 높이는 차원에서 중요한 개념
- 대표적 사례
예외 처리 구문
- try-except문
- 파이썬에서 예외 처리의 기본 문법
- 작성 방식
- try: 예외 발생 가능 코드 except 예외 타입: 예외 발생 시 실행되는 코드
사용 예시
- 0부터 9까지 숫자 → i에 하나씩 할당하며 10으로 나눈 값 출력
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
- 1이 아닌 0부터 시작 → 10을 0으로 나누는 계산 가장 먼저 실행
- 0으로 10 나눌 수 없으므로 예외 발생
- 예상 가능 → try문으로 대비
- ZeroDivisionError
- 0으로 나눠지는 경우에는 except문 안으로 들어가 해당 구문을 처리
- print("Not divided by 0")
- try문 내부 예외 발생 → excpet문 영역 코드 실행하고 종료
예측 가능한 예외와 예측 불가능한 예외
- 예의 종류 두 가지
- 예측 가능한 예외
- 예측 불가능한 예외
- 예측 가능한 예외
- 발생 여부를 개발자가 사전에 인지할 수 있는 예외
- 예시
- ‘텍스 트 박스에 사용자가 실수로 잘못된 값을 입력할 것 같다
- 사용자가 실제로 존재하지 않는 파일에 저장할 것 같다.’
- 사용자 입력란에 값이 잘못 입력 → if문 사용하여 잘못 입력햇다고 응답
- 예측 불가능한 예외
- 대표적 사례
- 매우 많은 파일을 처리할 때 문제가 발생할 수 있음
- 5,000개의 파일이 한 디렉터리에 있고 그 파일명들을 넘겨 받아 파일을 하나씩 읽어들이는 프로그램을 만듦
- 그런데 파일을 읽다가 어떤 파일 은 실제로 안에 내용이 없을 수 있는데, 이런 경우에도 어떤 처리를 하지 못하고 넘어감
- 또는 파일을 읽고 있는데 다른 사용자에 의해 해당 파일이 삭제되어 읽어들이는 시점에 해당 파 일이 사라지는 경우도 발생할 수 있음
- 이외에도 인덱스의 범위를 넘어가는 리스트의 호출
- 정수를 0으로 나누는 것 등에 대한 문제가 생길 수 있음
- 이 경우 → 인터프리터가 자동으로 이것이 예외라고 사용자에게 알림
- 대부분은 이러한 예외가 발생하면서 프로그램이 종료되므로 적절한 조치 해야 함
- 단순히 파일이 없다고 알려주는 것이 아니라 파일이 없기 때문에 추가로 해야 하는 조 치 있음
- →그것을 예외 처리 구문에 추가해야 한다
- 예를 들어, 처리해야 할 파일이 없다 면 파일이 없다고 기록을 남기고 다음 파일을 처리하는 방식으로 프로그램을 작성해야 함
- 예외 처리 중요한 이유
- 프로그램도 일종의 제품임
- 완성도를 높이는 차원에서 중요한 개념
- 대표적 사례
예외 처리 구문
- try-except문
- 파이썬에서 예외 처리의 기본 문법
- 작성 방식
- try: 예외 발생 가능 코드 except 예외 타입: 예외 발생 시 실행되는 코드
사용 예시
- 0부터 9까지 숫자 → i에 하나씩 할당하며 10으로 나눈 값 출력
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
- 1이 아닌 0부터 시작 → 10을 0으로 나누는 계산 가장 먼저 실행
- 0으로 10 나눌 수 없으므로 예외 발생
- 예상 가능 → try문으로 대비
- ZeroDivisionError
- 0으로 나눠지는 경우에는 except문 안으로 들어가 해당 구문을 처리
- print("Not divided by 0")
- try문 내부 예외 발생 → excpet문 영역 코드 실행하고 종료
- +) 예외의 종류 & 예외에 대한 에러 메세지
- 예외의 종류
- IndexError
- 리스트의 인덱스 범위를 넘어갈 때 처리하는 예외
- 코드를 작성하다 데이터가 150개인줄 알았는데. 151 개가 있어 처리를 요청하는 경우 IndexError가 호출됨
- NameError
- 코드에서 호출하는 특별한 변수명이 없을 때 호출되는 에러
- 이 언어가 인터프리터언어이다 보니 존재하지 않은 변수도 실행 시점에서 잡아냄
- 컴파일러 언어의 경우 실행 전이나 컴파일러 시점에 에러가 발생하는 것과는 대조적
- 예외에 대한 에러 메세지
사용 방법
- except문의 마지막에 ‘as e’ 또는 ‘as 변수명’을 입력 → 해당 변수명을 출력
- 사용 방법
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError as e:
print(e)
print('Not divided by 0')
try-except-else문
- if-else 문과 비슷
- 해당 예외가 발생하지 않는 경우 수행할 코드를 else문에 작성하면 됨
- 기본 형태
- 코드
for i in range(10):
try:
result =10 / i
except ZeroDivisionError:
print('Not divided by 0')
else:
print(10 / i)
- 에러 발생하지 않는 경우 수행문 정의 → 에러 없어도 일어날 일을 사용자가 정확히 예측할 수 있다는 장점
- 일반적으로 많이 사용되지 않음
- 간혹 서버 상태 불안해 연결 끊김이 자주 발생 → 연걸 됐을 때 처리할 코드 명확히 하기
try-except-finally문
- try—except문 안에 있는 수행 코드가 아무런 문제 없이 종료되었을 경우 최종으로 호출하는 코드
- for문에서 사용하는 finally문과 용도가 비슷
- 기본 형식
- 사용 예시
try:
for i in ranged, 10):
result =10 // i
print(result)
except ZeroDivisionError:
print("Not divided by 0")
finally:
print("종료되었다.")
- try문이 for문 밖에 선언되어 있고, 두가 1부터 시작
- 사실상 ZeroDivision- Error가 발생할 수 없는 코드
- 이러한 코드를 작성하면 except문은 실행되지 않고 마지 막으로 finally문만 실행
- try-except-finally문도 for문에서 finally문을 사용하는 것 과 동일하게 예외 발생 여부와 상관없이 반드시 실행되는 코드
raise
- 필요할 때 예외를 발생시키는 코드
- while True문을 사용해 계속 반복문을 돌려야 하는 프로그램을 작성한다고 가정
- 상대방 컴퓨터에 계속 무엇인가를 요청해야 하는 프로그램이고, 요청할 때마다 비용이 청구
- 만약 상대방 컴퓨터가 고장나거나 문제가 생겨 사용하지 못하게 되는 상황이 발생한다면 어떻게 해야 할까?
- 프 로그램을 작성할 때 상대방 컴퓨터에서 응답이 없다면 강제로 프로그램이 종료되도록 예외를 발생
- 기본 형태
- 사용 예시
- 설명
- while True문으로 반복문이 계속 돌아가는 상태에서 사용자에게 입력을 받음
- 하지만 사용자가 입력한 값이 숫자가 아닌 경우에는 숫자값을 입력하지 않았다고 출 력하면서 프로그램을 종료하는 것을 목적으로 작성된 프로그램이
- 이때, 에러의 종류는 ValueError로 사용자가 입력을 잘못했을 때 입력이 잘못된 것을 알려주면서 종료
assert문
- 미리 알아야 할 예외 정보가 조건을 만족하지 않을 경우 예외를 발생
- 앞에서 if문과 함께 raise문을 사용하여 강제로 예외를 발생
- assert문 → 매우 간단하게 예외를 발생
- True 또는 False의 반환이 가능한 함수를 사용
- 만약 False가 반환되면 예외가 발생
- 기본 형태
- ㅅ사용 예시
- 설명
- 1행에서 get_binary_number() 함수를 통해 십진수를 입력받음
- 하지만 함수를 사용하 는 사용자가 잘못된 인수argument, 예를 들어 문자열값을 입력할 수도 있음
- 이를 방지하기 위해 2행에서 assert문을 사용
- isinstance() 함수는 입력된 값이 다음에 나오는 클래스 의 인스턴스인지를 확인하는 함수
- 이 코드에서 decimal_number 변수가 정수형 인지는 4〜 5행에서 확인할 수 있음
- assert문은 코드를 작성할 때 잘못된 입력 여부를 사전에 확인하여 나중에 필요 없는 연산을 막아주고, 결국 다른 사람이 만든 코드를 사용하는 데 좋은 가이드가 됨
+) 예외의 종류 & 예외에 대한 에러 메세지
- 예외의 종류
- IndexError
- 리스트의 인덱스 범위를 넘어갈 때 처리하는 예외
- 코드를 작성하다 데이터가 150개인줄 알았는데. 151 개가 있어 처리를 요청하는 경우 IndexError가 호출됨
- NameError
- 코드에서 호출하는 특별한 변수명이 없을 때 호출되는 에러
- 이 언어가 인터프리터언어이다 보니 존재하지 않은 변수도 실행 시점에서 잡아냄
- 컴파일러 언어의 경우 실행 전이나 컴파일러 시점에 에러가 발생하는 것과는 대조적
- 예외에 대한 에러 메세지
사용 방법
- except문의 마지막에 ‘as e’ 또는 ‘as 변수명’을 입력 → 해당 변수명을 출력
- 사용 방법
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError as e:
print(e)
print('Not divided by 0')
try-except-else문
- if-else 문과 비슷
- 해당 예외가 발생하지 않는 경우 수행할 코드를 else문에 작성하면 됨
- 기본 형태
- 코드
for i in range(10):
try:
result =10 / i
except ZeroDivisionError:
print('Not divided by 0')
else:
print(10 / i)
- 에러 발생하지 않는 경우 수행문 정의 → 에러 없어도 일어날 일을 사용자가 정확히 예측할 수 있다는 장점
- 일반적으로 많이 사용되지 않음
- 간혹 서버 상태 불안해 연결 끊김이 자주 발생 → 연걸 됐을 때 처리할 코드 명확히 하기
try-except-finally문
- try—except문 안에 있는 수행 코드가 아무런 문제 없이 종료되었을 경우 최종으로 호출하는 코드
- for문에서 사용하는 finally문과 용도가 비슷
- 기본 형식
- 사용 예시
try:
for i in ranged, 10):
result =10 // i
print(result)
except ZeroDivisionError:
print("Not divided by 0")
finally:
print("종료되었다.")
- try문이 for문 밖에 선언되어 있고, 두가 1부터 시작
- 사실상 ZeroDivision- Error가 발생할 수 없는 코드
- 이러한 코드를 작성하면 except문은 실행되지 않고 마지 막으로 finally문만 실행
- try-except-finally문도 for문에서 finally문을 사용하는 것 과 동일하게 예외 발생 여부와 상관없이 반드시 실행되는 코드
raise
- 필요할 때 예외를 발생시키는 코드
- while True문을 사용해 계속 반복문을 돌려야 하는 프로그램을 작성한다고 가정
- 상대방 컴퓨터에 계속 무엇인가를 요청해야 하는 프로그램이고, 요청할 때마다 비용이 청구
- 만약 상대방 컴퓨터가 고장나거나 문제가 생겨 사용하지 못하게 되는 상황이 발생한다면 어떻게 해야 할까?
- 프 로그램을 작성할 때 상대방 컴퓨터에서 응답이 없다면 강제로 프로그램이 종료되도록 예외를 발생
- 기본 형태
- 사용 예시
- 설명
- while True문으로 반복문이 계속 돌아가는 상태에서 사용자에게 입력을 받음
- 하지만 사용자가 입력한 값이 숫자가 아닌 경우에는 숫자값을 입력하지 않았다고 출 력하면서 프로그램을 종료하는 것을 목적으로 작성된 프로그램이
- 이때, 에러의 종류는 ValueError로 사용자가 입력을 잘못했을 때 입력이 잘못된 것을 알려주면서 종료
assert문
- 미리 알아야 할 예외 정보가 조건을 만족하지 않을 경우 예외를 발생
- 앞에서 if문과 함께 raise문을 사용하여 강제로 예외를 발생
- assert문 → 매우 간단하게 예외를 발생
- True 또는 False의 반환이 가능한 함수를 사용
- 만약 False가 반환되면 예외가 발생
- 기본 형태
- 사용 예시
- 설명
- 1행에서 get_binary_number() 함수를 통해 십진수를 입력받음
- 하지만 함수를 사용하 는 사용자가 잘못된 인수argument, 예를 들어 문자열값을 입력할 수도 있음
- 이를 방지하기 위해 2행에서 assert문을 사용
- isinstance() 함수는 입력된 값이 다음에 나오는 클래스 의 인스턴스인지를 확인하는 함수
- 이 코드에서 decimal_number 변수가 정수형 인지는 4〜 5행에서 확인할 수 있음
- assert문은 코드를 작성할 때 잘못된 입력 여부를 사전에 확인하여 나중에 필요 없는 연산을 막아주고, 결국 다른 사람이 만든 코드를 사용하는 데 좋은 가이드가 됨
#2. 파일 다루기
파일의 개념
- 파일file은 컴퓨터를 실행할 때 가장 기본이 되는 단위
- 프로그램을 실행하는 것은 늘 파일 을 실행하는 것
- 하지만 일반적으로 윈도의 GUI 환경에서는 파일을 실행하는 것이 아니 라, [그림 12-2]와 같은 아이콘을 더블클릭하여 실행
- 실제로는 아이콘 과 연결된 파일이 실행되는 구조
- 아이콘에서 마우스 오른쪽 버튼을 클릭하고 [속성]을 선택하면 [그림 12-3]과 같은 화면을 볼 수 있음
- 속성 화면에서 ‘대상’ 항목에 실행되는 파일의 경로가 있음
- 이 경로를 그대로 복사하여 콘솔 창에 붙여넣고 실행하면 해당 프로그램이 실행됨
- 모든 프로그램은 이렇게 파일이 있기 때 문에 실행되는 것
- 단지 사용자가 편하게 쓰기 위해 간단한 아이콘을 만들어 사용할 뿐이 지, 그 이면에는 모두 파일이 숨어 있다고 할 수 있음
파일의 종류
- 기본적으로 바이너리 파일binary file과 텍스트 파일text file, 두 가지로 분류 가능
- 바이너리
- 컴퓨터만 이해할 수 있는 이진 정보로 저장된 파일
- 비트bit 형태로 저장되어 메모장으로 열면 내용이 보이지 않거나 내용을 확인할 수 없는 파일
- 정보 효율적으로 저장하기 위해 파일 시스템 대부분은 이진 정보로 저장
- 엑셀이나 워드 프로그램들이 모두 이진 정보로 저장된 이진 파일
- 텍스트
- 사람이 이해할 수 있는 문자열로 저장된 파일
- 메모장으로 그 내용을 확인할 수 있음
- 지금까지 작성한 파이썬 파일이나 HTML 코드 파일 등도 모두 텍스트 파알
- 생각보다 많은 파일이 텍스트 파일로 저장
파일 읽기
- 텍스트 파일을 다루기 위해 open() 함수를 사용
- open() 함수와 파일명, 파일 열기 모드를 입력하면 그 옵션에 따라 파일을 다룰 수 있음
- 파일을 여는 모드에는 읽기 모드, 쓰기 모드, 추가 모드 등이 존재
- 파이썬에서는 상황에 따라 이러한 형식을 조합하여 파일을 다루게 됨
- 파일 읽기
- 파일 읽기 실행
- 설명
- 1행에서 open() 함수 다음에 파일명과 ‘r’을 입력해 파일에 대한 정보를 변수 f에 저장
- 이를 일반적으로 파일 객체
- 2행에서 변수 오를 이용해 read() 함수를 실행하면 해당 파일의 텍스트를 contents 변수에 문자열로 저장
- 3행에서는 contents 변수의 내 용. 즉 ‘dream.txt’ 파일에 있는 텍스트를 화면에 출력
- 4행에서는 마지막으로 close() 함수를 사용하여 파일을 종료
- 때때로 텍스트 파일을 다룰 때 이미 수정하고 있는 파일을 다른 프로그램에서 동시에 호출하면 에러가 발생한
- 이렇게 하나의 파이썬 프로그램이 하나의 파일을 사용할 때 사용을 완료하면 반드시 해당 파일을 종료해야 함
- 1행에서 open() 함수 다음에 파일명과 ‘r’을 입력해 파일에 대한 정보를 변수 f에 저장
with문과 함께 사용
- with문과 함께 open() 함수를 사용 가능
- . with문은 들여쓰기를 하는 동안에는 open() 함수가 유지되고, 들여쓰기가 끝나면 open() 함수도 종료되는 방식
- 차이점은 close() 함수를 명시적으로 쓰지 않아도 파일의 사용을 종료할 수 있다는 점
- 특히 해당 파일 객체는 =로 할당하는 방식이 아니라 as문을 사용하여 변수명에 할당
한 줄씩 읽어 리스트혀으로 반환
- 파일 전체의 텍스트를 문자열로 반환하는 read() 함수 대신. readlines() 함수를 사용하여 한 줄씩 내용을 읽어와 문자열 형태로 저장 가능
- 한 줄의 기준은 \n 로 나뉘어지고 리스트로 반환될 때 for문 등 다양한 형태로 활용 가능
실행할 때마다 한 줄씩 읽어오기
- 실행할 때마다 차례대로 한 줄씩 읽어오는 함수인 readline()에 대해 알아보자.
- 기존 read() 함수는 파일을 한 번 열 때 파일의 처음부터 끝까지 모든 파일의 내용을 읽어오는 함수이지만 readline() 함수는 호출될 때마다 한 줄씩 읽어오는 특징 존재
- 설명
- 3행에서 while 1로 코드가 항상 수행되도록 만든 다음, 4행의 line = my_file.readline()으로 한 줄씩 파일을 읽어들임
- 만약 읽어온 줄에 내용이 없다면 5행 의 if not line: break 코드에 의해 반복문이 종료되어 파일 읽기를 종료
- 하지만 파일 에 남은 내용이 있다면 while문이 계속 실행되면서 모든 코드를 다 읽어오게 됨
- 파일의 내용을 찾다가 중간에 멈춰야 할 필요가 있는 대용량 데이터는 같은 코드를 많이 사용
파일에 저장된 글자의 ㅇ통계정보 출력하기
- 때로는 파일에 저장된 텍스트의 통계 정보를 읽어와야 할 때가 있음
- 이를 위해 많이 사용하는 방법
- 이미 배운 split() 함수와 len() 함수를 함께 사용하는 것
- 파일에 저장된 모든 텍스트를 읽어온 후 차례대로 글자 수, 단어 수, 줄 수를 출력하는 프로그램
파일 쓰기
- 파일에 무엇인가를 쓰기 위해서는 파일 열기 모드를 ‘W’로 설정하는 것과 함께 인코딩 encoding 이라는 개념을 알아야 함
- 인코딩
- 텍스트 파일을 저장하기 위해서는 저장할 때 사용하는 표준을 지 정해야 함
- 인코딩 옵션 → 인코딩 표준을 지정할 수 있음
- 일반적으로 인코딩은 UTF-8을 많이 사용
- 파일을 윈도에서만 사용한다면 cp949도 사용가능
- 운영체제나 파일의 사용 환경에 따라 다르게 설정해야 함
pickle 모듈
- 파이썬 프로그램을 실행할 때 생성되는 여러 변수와 객체는 순간적으로 메모리에 로딩되었다 가 프로그램이 종료되면 사라짐
- 하지만 때로는 이렇게 사용되는 객체를 저장시켜 놓고 필 요할 때 다시 불러야 하는 경우가 있음
- 이 경우를 프로그래밍 언어에서는 영속화persistence라고 함
- 간단히 표현하면 필요한 객체를 파일로 저장시켜 다시 사용할 수 있도록 하는 것
- 파이썬은 pickle 모듈을 제공하여 메모리에 로딩된 객체를 영속화할 수 있도록 지원
- 리 스트에 들어간 데이터나 클래스의 오브젝트 등을 파일로 저장시켜 나중에 다시 사용할 수 있 도록 해줌
- 아직은 필요 없지만 저장해야 하는 정보가 많아지고 계산 결과를 저장하였다가 나중에 다시 불러 사용할 경우에도 요긴하게 쓸 수 있는 기능
- pickle 모듈을 사용하기 위해서는 다음 코드와 같이 호출한 후 객체를 저장할 수 있는 파일을 열고 저장하고자 하는 객체를 넘기면dump 됨
- 파일을 생성할 때는 ‘w’가 아닌 ‘Wb’로 열어야 하는데 여기서 B는 바이너리binary를 뜻하는 약자로 텍스트 파일이 아닌 바이너리 파일로 저장된다는 의미
- dump() 함수에서는 저장할 객체, 저장될 파일 객체를 차례대로 인수 로 넣으면 해당 객체가 해당 파일에 저장됨
- 저장된 pickle 파일을 불러오는 프로세스도 저장 프로세스와 같음
- 먼저 list.pickle 파일 을 ‘rb’ 모드로 읽어온 후, 해당 파일 객체를 pickle 모듈을 사용하여 load() 함수로 불러오면 됨
- 사실 pickle 객체를 불러올 때 해당 객체가 어떤 객체인지에 대한 정보가 전혀 없어 상당히 혼란스러울 때도 있지만, 해당 코드를 개발한 개발자라면 코드의 인터페이스를 정확히 알고 있으므로 어려움 없이 사용할 수 있음
- 다음 파이썬 셸 코드는 앞에서 리스트 객체를 list.pickle 파일에 저장했기 때문에 해당 파일을 불러 사용할 때도 동일하게 리스트 객체가 반환된 것을 알 수 있음
- pickle 모듈은 단순히 생성된 객체를 저장하는 기능도 있지만 사용자가 직접 생성한 클래스 객체도 저장
- 다음 코드와 같이 곱셈을 처리하는 클래스를 생성한다고 가정
- 이 코드의 클래스는 처음 객체를 생성할 때 초깃값을 생성하고, multiply() 함수를 부를 때마다 ‘초 깃값 * number’의 값을 호출하는 클래스
- 일종의 곱셈 클래스라고 생각
- 그러나 프로그램을 작성하다 보면 매우 복잡한 연산도 따로 저장하여 사용할 때가 있음
- 이러한 저장 모듈을 효율적으로 사용하기 위해 다음 코드처럼 pickle 모듈을 사용할 수 있음
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[3팀/김경은] 10주차 파이썬 스터디 - 예외처리 (0) | 2023.06.02 |
---|---|
[1팀/허서원] 10차시 파이썬 스터디 - 예외처리 (0) | 2023.06.01 |
[1팀/한규림] 10주차 파이썬 스터디 - 예외처리 (0) | 2023.06.01 |
[2팀/김가림, 최다예] 10주차 파이썬 스터디 - 예외처리 (1) | 2023.06.01 |
[2팀/김세연] 10주차 파이썬 스터디 - 예외처리 (0) | 2023.05.31 |