1. try / except
보통 python에서 code 실행 시 error가 발생하는 경우, error 메시지를 띄우며 code 실행이 중지된다. 이런 error를 없애기 위해 아예 error가 발생하지 않도록 code를 짜는 것도 중요하지만, error가 발생했을 때 그 때에 맞게 error를 수정할 수 있도록 해주는 것이 try / except 함수라고 할 수 있다.
기본 문법은 다음과 같다.
try:
<기본 code>
except:
<error가 발생 시 처리할 code>
우선 try에 있는 <기본 code>부분을 실행한다. 그러다가 기본 code를 실행 시 error가 발생하는 경우 error가 발생한 부분의 실행을 중단하고 except에 있는 <error가 발생 시 처리할 code>를 실행한다. 이를 통해 error가 발생하지 않는다면 code 중단없이 code를 실행할 수 있다. 물론 except에 있는 code를 실행 시 오류가 난다면 그에 대한 error 메시지가 출력되며 code 실행이 중단된다.
ex1>
a = [3, 2, 1, 0]
b = []
c = 10
for i in a:
b.append(c/i)
print(b)
>> ZeroDivisionError: division by zero
-> for문을 돌 때, 0으로 나누는 경우가 생겨 error가 발생하며 코드 중단
ex2>
a = [3, 2, 1, 0]
b = []
c = 10
for i in a:
try:
b.append(c/i)
except:
b.append(c)
print(b)
>> [3.3333333333333335, 5.0, 10.0, 10]
-> 0으로 나누는 경우가 생기면 except에 있는 코드가 돌며 code 중단없이 실행 가능
2. enumerate
enumerate는 sequence가 있는 자료형(list, tuple, string 등)에 대해서 그 index 값도 같이 내보내는 역할을 한다. 보통 sequence가 있는 자료형은 for문에서 다음과 같은 문법으로 적용될 수 있다.
즉, sequence가 있는 자료형을 직접 for문에 넣는 경우, for문을 통해 그 element들이 하나씩 나오게 된다. 하지만 enumerate를 쓰면 element 뿐만 아니라 그 element의 index 값이 같이 나오게 된다. 때문에 sequence가 있는 자료형의 index 값도 필요한 경우 enumerate를 사용한다.
ex1>
a = [3, 2, 1]
for idx, element in enumerate(a):
print(idx, element)
>> 0 3
1 2
2 1
ex2>
a = [(1, 'a'), (2, 'b'), (3, 'c')]
for idx, (element1, element2) in enumerate(a):
print(idx, element1, element2)
>> 0 1 a
1 2 b
2 3 c
ex3>
student_number = ['student1', 'student2', 'student3', 'student4']
grade = ['A', 'B', 'F', 'C']
for idx, student in enumerate(student_number):
print(student, ':', grade[idx])
>> student1 : A
student2 : B
student3 : F
student4 : C
-> index 정보를 사용하는 예시
'Python' 카테고리의 다른 글
Python os library에서 자주 쓰는 함수 정리 (0) | 2020.12.04 |
---|---|
있어보이는 Python: map, lambda (0) | 2020.11.13 |
Window Python(Jupyter Notebook)에서 tar.gz 파일로 압축 및 해제하기 (0) | 2020.11.09 |
Pytorch의 tensor GPU 연산하기(Autograd 이해하기) (0) | 2020.11.07 |
Pytorch의 tensor 다루기 (0) | 2020.11.07 |