다른 프로그래밍 언어와 마찬가지로 Python에도 고유한 규칙이 있습니다. 이러한 규칙을 따르지 않으면 인터프리터가 코드를 이해할 수 없게 되어 구문 오류가 발생합니다. 이러한 오류는 초보자와 숙련된 프로그래머 모두가 겪는 일반적인 문제입니다. 이 문서에서는 파이썬에서 가장 빈번하게 발생하는 오류에 대해 설명하고 프로그래밍 과정에서 오류를 수정하는 방법을 제공합니다.
구문 오류가 발생하면 Python은 문제를 가리키는 오류 메시지를 제공합니다. 이 메시지에는 일반적으로 다음이 포함됩니다:
초보자가 가장 흔히 하는 실수 중 하나는 괄호를 닫는 것을 잊어버리는 것입니다. 이는 함수 호출과 중첩 구조에서 특히 흔하게 발생합니다.
예시:
print("Hello, World!"
파이썬 오류 메시지:
수정:
모든 괄호가 올바르게 닫혔는지 확인합니다.
print("Hello, World!")
Python은 코드 블록을 정의할 때 들여쓰기를 사용합니다. 들여쓰기가 잘못되면 구문 오류가 발생할 수 있습니다.
예제:
def greet():
print("Hello, World!")
파이썬 오류 메시지:
수정:
코드 블록을 올바르게 들여쓰기합니다.
def greet():
print("Hello, World!")
목록이나 사전에서 요소 사이에 쉼표를 넣는 것을 잊는 것도 자주 발생하는 실수 중 하나입니다.
예시:
fruits = {"type": "sweert" "name": "orange"}
파이썬 오류 메시지:
수정:
"sweert"와 "name" 사이에 누락된 쉼표를 추가합니다.
fruits = {"type": "sweert", "name": "orange"}
파이썬 예약어를 부적절하게 사용하면 구문 오류가 발생할 수도 있습니다. 키워드는 특별한 의미를 가진 예약어입니다.
예제:
class = "Beginner"
파이썬 오류 메시지:
수정:
예약 키워드가 아닌 다른 이름을 선택합니다.
level = "Beginner"
변수 이름은 특정 규칙을 준수해야 합니다. 숫자로 시작하거나 공백을 포함하는 등 잘못된 변수 이름을 사용하면 구문 오류가 발생합니다.
예시:
2name = "John"
파이썬 오류 메시지:
수정:
유효한 변수 이름을 사용하세요.
name2 = "John"
문자열은 일치하는 따옴표로 묶어야 합니다. 문자열을 닫는 것을 잊어버리면 구문 오류가 발생합니다.
예시:
message = "Hello, World!
파이썬 오류 메시지:
수정:
문자열이 같은 유형의 따옴표로 닫혀 있는지 확인합니다.
message = "Hello, World!"
if, for, while, def와 같은 복합문 끝에 콜론(:)을 추가하는 것을 잊어버리면 구문 오류가 발생할 수 있습니다.
예시:
def greet()
print("Hello, World!")
파이썬 오류 메시지:
수정:
복합문 끝에 콜론을 추가합니다.
def greet():
print("Hello, World!")
연산자를 잘못 사용하면 구문 오류가 발생할 수 있습니다. 여기에는 할당 연산자와 비교 연산자가 포함됩니다.
예제:
if x = 10:
print("x is 10")
파이썬 오류 메시지:
수정:
올바른 비교 연산자를 사용합니다.
if x == 10:
print("x is 10")
구문 오류가 발생한 간단한 웹 스크래핑 스크립트와 Python의 기본 제공 디버거인 pdb를 사용하여 이를 디버깅하는 방법을 살펴봅시다.
원본 코드:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles
print(title.text)
파이썬 오류 메시지:
수정:
for 루프 뒤에 누락된 콜론을 추가합니다.
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles:
print(title.text)
디버거를 시작하려면 루프 앞에 다음 줄을 추가하세요.
import pdb; pdb.set_trace()
중단점을 사용하여 코드를 수정했습니다:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
import pdb; pdb.set_trace()
for title in titles:
print(title.text)
스크립트를 실행하면 중단점에서 pdb 디버거가 시작됩니다.
> /path/to/your/script.py(10)()
-> for title in titles:
(Pdb)
디버깅 명령:
세션 예시입니다:
(Pdb) n
> /path/to/your/script.py(11)()
-> print(title.text)
(Pdb) p titles
[<h1>Example Domain</h1>]
(Pdb) c
Example Domain
pdb를 사용하면 코드를 단계별로 살펴보고, 변수를 검사하고, 실행 흐름을 이해할 수 있어 오류를 쉽게 식별하고 수정할 수 있습니다.
해석 오류는 프로세서가 코드를 포괄적으로 이해하지 못할 때 발생하지만 런타임 오류는 코드가 실행되는 동안 발생합니다. 영 나누기, 목록의 범위 배열 건드리기, 정의되지 않은 변수 등이 이러한 오류의 원인입니다.
예시:
numbers = [1, 2, 3]
print(numbers[3])
파이썬 오류 메시지:
수정:
유효한 목록 인덱스에 액세스하고 있는지 확인합니다.
print(numbers[2])
예외를 처리하면 오류가 발생해도 프로그램이 계속 실행될 수 있습니다. 예외를 포착하고 처리하려면 try-except 블록을 사용하세요.
예제:
try:
result = 10 / 0
except ZeroDivisionError:
print("You can't divide by zero!")
일반적인 실수에 대한 전문 지식을 습득하고 파이썬 구문에서 오류를 수정하는 것은 모든 파이썬 개발자에게 매우 필수적입니다. Python 오류 메시지를 읽고 후속 수정을 진행하면 더 나은 코드를 쉽게 작성할 수 있으며, 제안된 도구와 지침을 따르세요.
댓글: 0