2023. 6. 15. 16:22ㆍ공부한 내용/점프 투 파이썬
1. 예외 처리
1) 예외 처리 기법
(1) try, except문
*오류 처리를 위한 구분
-try 블록 수행 중 오류가 발생하면 except 블록 수행
-try 블록에서 오류가 발생하지 않으면 except 블록 미수행
try:
....
except [발생 오류 [as 오류 메시지 변수]]: #[]기호: 괄호 안의 내용은 생략할 수 있다는 관례 표기 기법
....
*except 구문 사용법
-발생 오류와 오류 메시지 변수를 포함한 except 문: 오류가 발생했을 때 except문에 미리 정해 놓은 오류 이름과 일치할 때만 except 블록을 수행하고, 오류 메시지의 내용까지 알고 싶을 때 사용하는 방법
try:
4 / 0
except ZeroDivisionError as e:
print(e)
#> 결과: division by zero
(2) try ... finally
*finally 절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행됨
*보통 finally절은 사용한 리소스를 close해야 할 때에 많이 사용함
f = open("foo.txt", "w")
try:
....
finally:
f.close()
(3) 여러 개의 오류 처리하기
*try문 안에서 여러 개의 오류를 처리하기 위한 방법
try:
a = [1, 2]
print(a[3])
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except IndexError:
print("인덱싱할 수 없습니다.")
try:
a = [1, 2]
print(a[3])
4 / 0
except (ZeroDivisionError, IndexError) as e: #2개 이상의 오류를 동시에 처리하기 위해 괄호를 사용하여 함께 묶어 처리
print(e)
2) 오류 회피하기
*특정 오류가 발생할 경우 그냥 통과시키는 방법
try:
f = open("없는 파일", "r")
except FileNoFoundError:
pass
-try문 안에서 FileNotFoundError가 발생할 경우에 pass를 사용하여 오류를 그냥 회피하도록 함
3) 오류 일부러 발생시키기
*raise 명령어를 사용해 오류를 강제로 발생시킬 수 있음
(ex) Bird 클래스를 상속받는 자식 클래스가 반드시 fly라는 함수를 구현하도록 하고 싶은 경우
-파이썬 내장 오류 NotImplementedError와 raise문 활용
-fly 함수를 구현하지 않은 상태로 fly 함수 호출 시 NotImplementedError 오류 발생
class Bird:
def fly(self):
raise NotImplementError
class Eagle(Bird):
pass
eagle = Eagle()
eagle.fly()
#> Traceback (most recent call last):
#> File "...", line 33, in <module>
#> eagle.fly()
#> File "...", line 26, in fly
#> raise NotImplementedError
#> NotImplementedError
4) 예외 만들기
*파이썬 내장 클래스인 Exception 클래스를 상속하여 생성 가능
(ex) 별명을 출력해주는 함수에서 MyError 사용하기
class MyError(Exception):
pass
def say_nick(nick):
if nick == "바보":
raise MyError()
print(nick)
#> 오류 발생
try:
say_nick("천사")
say_nick("바보")
except MyError:
print("허용되지 않는 별명입니다.")
#> 천사
#> 허용되지 않는 별명입니다.
class MyError(Exception):
def __str__(self):
return "허용되지 않는 별명입니다."
try:
say_nick("천사")
say_nick("바보")
except MyError as e:
print(e)
#> 천사
#> 허용되지 않는 별명입니다.
2. 내장 함수
*파이썬 내장 함수
*외부 모듈과 달리 import 등 기타 설정 없이 바로 사용 가능
(1) abs(x): x의 절댓값을 돌려주는 함수
(2) all(x): 반복 가능한(Iterable) 자료형 x가 모두 참이면 True, 하나라도 거짓이면 False 반환
(3) any(x): x가 모두 거짓이면 False, 하나라도 참이면 True 반환
(4) chr(x): 아스키(ASCII) 코드를 입력받아 코드에 해당하는 문자 반환
(5) dir(x): 객체가 자체적으로 가지고 있는 변수나 함수 반환
(6) divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플 형태로 반환
(7) enumerate(x): 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체 반환
(8) eval(expression): 실행 가능한 문자열(expression)을 입력으로 받아 문자열을 실행한 결과값 반환. 문자열로 파이썬 함수나 클래스를 동적으로 실행할 때 사용
(9) filter(f, iterable): Iterable 자료형의 요소가 함수 f에 입력되었을 때 반환 값이 참인 것만 묶어서 반환
-lambda도 사용 가능
(10) hex(x): 정수 값을 입력받아 16진수로 변환
(11) id(object): object(객체)의 고유 주소 값 반환
(12) input([prompt]): 사용자 입력을 받는 함수, 문자열 인자 생략 가능. 매개변수로 문자열을 주면 프롬프트 띄움
(13) int(x): 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 변환
(14) instance(object, class): object-인스턴스, class-클래스 이름. 인스턴스가 클래스의 인스턴스인지 판단하여 참이면 True, 거짓이면 False 반환
(15) len(x): 입력값의 길이(요소의 전체 개수) 반환
(16) list(iterable): Iterable 자료형을 리스트로 변환
(17) map(f, iterable): Iterable 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 반환
-lambda 활용 가능
(18) max(iterable): Iterable 자료형의 최대값 반환
(19) min(iterable): Iterable 자료형의 최소값 반환
(20) oct(x): 정수 형태의 숫자를 8진수 문자열로 변환
(21) open(filename, [mode]): filename: 파일 이름 / mode: 읽기 방법
-mode를 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체 반환
b는 w, r, a와 함께 사용
모드 | 설명 |
w | 쓰기 모드로 파일 열기 |
f | 읽기 모드로 파일 열기 |
a | 추가 모드로 파일 열기 |
b | 바이너리 모드로 파일 열기 |
(22) ord(c): 문자의 아스키 코드 값 반환
(23) pow(x, y): x의 y 제곱한 결과값 반환
(24) range([start,] stop [,step]): 입력받은 숫자에 해당하는 범위 값을 반환
-인수가 하나일 경우: 시작 숫자를 지정해 주지 않으면 0부터 시작
-인수가 2개일 경우: 시작 숫자와 끝 숫자로, 끝 숫자는 해당 범위에 포함되지 않음
-인수가 3개일 경우: 세 번째 인수는 숫자 사이의 거리
(25) round(number [,ndigits]): 숫자를 입력받아 반올림해주는 함수
-ndigits: 반올림하여 표시하고 싶은 소수점의 자리수
(26) sorted(iterable): 입력값을 정렬한 후 그 결과를 리스트로 반환
(27) str(object): 객체를 문자열 형태로 변환
(28) sum(iterable): 리스트나 튜플의 모든 요소의 합 반환
(29) tuple(iterable): Iterable 자료형을 튜플 형태로 변환
(30) type(object): 입력값의 자료형 반환
(31) zip(*iterable): 동일한 개수로 이루어진 자료형을 묶어주는 역할을 하는 함수
'공부한 내용 > 점프 투 파이썬' 카테고리의 다른 글
[파이썬] 점프 투 파이썬 - 정규 표현식 (0) | 2023.06.20 |
---|---|
[파이썬] 점프 투 파이썬 - 라이브러리 (0) | 2023.06.17 |
[파이썬] 점프 투 파이썬 - 모듈과 패키지 (0) | 2023.06.15 |
[파이썬] 점프 투 파이썬 - 클래스 (0) | 2021.07.04 |
[파이썬] 점프 투 파이썬 - 함수, 파일 입출력 (0) | 2021.07.01 |