ValueError는 부적절한 값을 가진 인자를 받거나 참조값이 없을 때 발생한다.
num = int("ABCDE")
print(f"number : {num}")
실행결과
ValueError: invalid literal for int() with base 10: 'ABCDE'
IndexError는 인덱스 범위를 벗어나는 경우에 발생한다.
a = ['a', 'b', 'c', 'd', 'e']
a[30]
실행결과
IndexError: list index out of range
SyntaxError는 문법에서 오류가 발생하는 경우에 발생한다.
a = 1
if a < 9
print("a < 9")
실행결과
SyntaxError: invalid syntax
NameError는 선언하지 않은 변수를 사용할 경우에 발생한다.
a = 1
b = 2
print(c)
실행결과
NameError: name 'c' is not defined
FileNotFoundError는 연산이나 함수에 전달될 데이터의 타입이 잘못되는 경우에 발생한다.
a = 1 + "abc"
실행결과
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ZeroDivisionError는 분모에 0이 들어갈 수 없어서 0으로 나눌 수 없는 경우에 발생한다.
a = 99 / 0
print(a)
실행결과
ZeroDivisionError: division by zero
FileNotFoundError는 파일이나 디렉터리에 접근하려 할 때, 해당 파일이나 디렉터리가 없는 경우 발생한다.
a = open("b.py", "r")
실행결과
FileNotFoundError: [Errno 2] No such file or directory: 'b.py'
zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다.
a = [1, 2, 3]
b = ["A", "B", "C"]
for i in zip(a, b):
print(i)
a = [1, 2, 3]
b = ["A", "B", "C"]
for i in range(3):
c = (a[i], b[i])
print(c)
실행결과는 같다
(1, 'A')
(2, 'B')
(3, 'C')
위 코드를 보면 a 리스트와 b 리스트를 zip() 함수에 인자로 넘겨서 호출한 후에, for 문으로 루프를 돌면서 튜플을 출력하고 있다.