소개
Python 구문 오류 및 예외 랩에 오신 것을 환영합니다! 이 랩에서는 Python 코드에서 구문 오류를 식별하고 수정하는 방법과 코드 실행 중에 발생할 수 있는 예외를 처리하는 방법을 배우게 됩니다.
성과
- 구문 오류 (Syntax Errors)
- 예외 (Exceptions)
Python 구문 오류 및 예외 랩에 오신 것을 환영합니다! 이 랩에서는 Python 코드에서 구문 오류를 식별하고 수정하는 방법과 코드 실행 중에 발생할 수 있는 예외를 처리하는 방법을 배우게 됩니다.
구문 오류는 Python 인터프리터가 코드의 구조를 이해할 수 없을 때 발생합니다. 이는 괄호 누락 또는 잘못된 들여쓰기와 같은 다양한 문제로 인해 발생할 수 있습니다.
새로운 Python 인터프리터를 엽니다.
python3
다음은 for 루프의 끝에 콜론이 누락되어 발생하는 구문 오류의 예입니다.
for i in range(10)
print(i)
인터프리터는 구문 오류를 발생시키고 오류가 발생한 위치를 알려줍니다.
File "<stdin>", line 1
for i in range(10)
^
SyntaxError: invalid syntax
캐럿 기호 (^) 는 구문 오류의 위치를 나타내며, 오류 메시지는 구문이 유효하지 않다고 알려줍니다.
이 구문 오류를 수정하려면 for 루프의 끝에 콜론을 추가하기만 하면 됩니다.
for i in range(10):
print(i)
이제 잘못된 들여쓰기가 있는 예제를 시도해 보겠습니다.
if True:
print("Hello, World!")
이 예제에서 print 문은 if 문 아래에 제대로 들여쓰기되지 않았습니다. 이 구문 오류를 수정하려면 print 문을 올바르게 들여쓰기해야 합니다.
if True:
print("Hello, World!")
예외는 프로그램 실행 중에 발생하는 오류입니다. Python 에서는 try 및 except 문을 사용하여 예외를 처리할 수 있습니다.
ZeroDivisionError 예외를 처리하는 방법의 예는 다음과 같습니다.
try:
x = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero!")
이 예제에서 try 블록에는 ZeroDivisionError 예외를 발생시킬 수 있는 코드가 포함되어 있습니다. 예외가 발생하면 제어가 except 블록으로 전달되어 오류 메시지를 출력하여 예외를 처리합니다.
또한 여러 예외를 포함하는 except 문을 사용하여 동일한 try 블록에서 여러 예외를 처리할 수 있습니다.
try:
x = 10 / 0
y = int('abc')
except ZeroDivisionError:
print("Cannot divide by zero!")
except ValueError:
print("Invalid input!")
이 예제에서 try 블록에는 ZeroDivisionError 또는 ValueError를 발생시킬 수 있는 코드가 포함되어 있습니다. ZeroDivisionError가 발생하면 ZeroDivisionError가 있는 except 블록이 이를 처리합니다. ValueError가 발생하면 ValueError가 있는 except 블록이 이를 처리합니다.
예외를 처리하는 것 외에도 raise 문을 사용하여 코드에서 예외를 발생시킬 수도 있습니다.
ValueError 예외를 발생시키는 방법의 예는 다음과 같습니다.
def validate_age(age):
if age < 0:
raise ValueError("Age cannot be negative.")
try:
validate_age(-1)
except ValueError as e:
print(e)
이 예제에서 validate_age 함수는 나이가 음수이면 ValueError 예외를 발생시킵니다. try 블록은 음수 나이로 validate_age 함수를 호출하여 ValueError 예외가 발생하도록 합니다. except 블록은 예외를 처리하고 오류 메시지를 출력합니다.
때로는 try 블록에서 발생할 수 있는 모든 예외를 잡고 싶을 수 있습니다. 예외를 지정하지 않은 except 문을 사용하여 이를 수행할 수 있습니다.
try:
x = 10 / 0
y = int('abc')
except:
print("An error occurred!")
이 예제에서 try 블록에는 ZeroDivisionError 또는 ValueError를 발생시킬 수 있는 코드가 포함되어 있습니다. 두 예외 중 하나라도 발생하면 except 블록에서 잡혀 오류 메시지를 출력합니다.
try 문에서 else 절을 사용하여 try 블록에서 예외가 발생하지 않은 경우에만 실행될 코드 블록을 지정할 수 있습니다.
try:
x = int(input("Enter a number: "))
except ValueError:
print("Invalid input!")
else:
print("The number is", x)
이 예제에서 try 블록에는 사용자가 잘못된 값을 입력하면 ValueError를 발생시킬 수 있는 코드가 포함되어 있습니다. 예외가 발생하지 않으면 else 블록이 실행되고 숫자가 출력됩니다.
try 문에서 finally 절을 사용하여 예외가 발생했는지 여부에 관계없이 항상 실행되어야 하는 코드 블록을 지정할 수 있습니다.
try:
x = int(input("Enter a number: "))
except ValueError:
print("Invalid input!")
finally:
print("Exiting program.")
이 예제에서 try 블록에는 사용자가 잘못된 값을 입력하면 ValueError를 발생시킬 수 있는 코드가 포함되어 있습니다. 예외가 발생했는지 여부에 관계없이 finally 블록은 항상 실행되고 프로그램이 종료됩니다.
이 랩에서는 Python 코드에서 구문 오류를 식별하고 수정하는 방법과 try 및 except 문을 사용하여 예외를 처리하는 방법을 배웠습니다. 또한 raise 문을 사용하여 코드에서 예외를 발생시키는 방법과 try 문에서 else 및 finally 절을 사용하는 방법을 배웠습니다.
이 랩이 도움이 되었고 Python 구문 오류 및 예외 작업에 대해 더 자신감을 갖게 되셨기를 바랍니다!