> 백엔드 개발 > 파이썬 튜토리얼 > Python 디버깅 팁

Python 디버깅 팁

王林
풀어 주다: 2023-06-11 12:42:07
원래의
2423명이 탐색했습니다.

Python은 널리 사용되는 프로그래밍 언어입니다. Python은 배우기 쉽고 사용하기 쉬운 언어이지만, 더 복잡한 프로그램을 사용하면 필연적으로 오류가 발생합니다. 이러한 상황을 위해 Python은 몇 가지 강력한 디버깅 도구를 제공합니다. 이 기사에서는 프로그램 오류를 빠르게 찾는 데 도움이 되는 Python의 몇 가지 디버깅 기술을 소개합니다.

  1. print 문으로 디버깅

Python에서 가장 쉬운 디버깅 팁 중 하나는 print 문을 사용하는 것입니다. print 문을 사용하면 프로그램의 실행 과정을 이해하는 데 도움이 되도록 프로그램 내의 특정 값이나 변수를 출력할 수 있습니다. 프로그램 실행이 중지되면 print 문을 사용하여 프로그램 실행 전에 계산된 일부 값을 출력할 수도 있습니다.

예를 들어 다음 프로그램은 직사각형의 면적을 계산할 때 오류가 있습니다.

width = 5
length = 10
area = length - width
print("矩形面积为:", area)
로그인 후 복사

이 프로그램을 실행하면 출력이 50이 아닌 -5임을 알 수 있습니다. print 문을 사용하면 면적 계산 과정 중 오류를 추적하는 데 도움이 될 수 있습니다.

width = 5
length = 10
area = length - width
print("width=", width)
print("length=", length)
print("area=", area)
로그인 후 복사

이렇게 하면 프로그램의 각 변수 값과 계산 과정 중 변수의 변경 사항을 볼 수 있어 오류를 더 쉽게 찾을 수 있습니다.

  1. 디버깅을 위해 Assert 문을 사용하세요

print 문 외에도 Python은 프로그램의 어설션 작업을 위한 Assert 문도 제공합니다. 이 문은 프로그램의 조건을 확인하고, 조건이 충족되지 않으면 프로그램 실행을 중지합니다.

assert 문의 구문은 다음과 같습니다.

assert condition, message
로그인 후 복사

여기서 조건은 확인할 조건입니다. 조건이 충족되지 않으면 프로그램 실행이 즉시 중지됩니다. 메시지는 선택 사항이며 오류 정보를 출력하는 데 사용됩니다.

예를 들어, 다음 프로그램은 숫자 목록을 처리하는 동안 오류가 발생했습니다.

numbers = [1, 2, 3, 4, 5]
total = 0
count = 0
for number in numbers:
    total += number
    count += 1
average = total / count

assert count > 0, "列表不能为空"
print("平均数为:", average)
로그인 후 복사

이 프로그램에서 Assert 문은 count 변수의 값이 0보다 큰지 확인합니다. count가 0이면 프로그램은 실행을 중지하고 "목록은 비워둘 수 없습니다."라는 오류 메시지를 출력합니다.

  1. pdb 패키지로 디버깅

Python에서 가장 강력한 디버깅 도구 중 하나는 pdb 패키지입니다. pdb는 프로그램 실행 중 언제든지 중지할 수 있고 코드를 단계별로 실행하고 변수 값을 볼 수 있는 Python 디버거입니다.

pdb 패키지를 사용하려면 코드에서 pdb 모듈을 가져와서 pdb.set_trace()를 사용하여 프로그램에 중단점을 삽입해야 합니다. 프로그램이 이 중단점에 도달하면 실행이 중지되고 pdb 디버깅 모드로 들어갑니다.

예를 들어 다음 프로그램은 계승을 계산할 때 오류가 있습니다.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print("5的阶乘为:", result)
로그인 후 복사

이 프로그램을 디버그해야 하는 경우 코드에 중단점을 삽입할 수 있습니다.

import pdb

def factorial(n):
    pdb.set_trace()
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(5)
print("5的阶乘为:", result)
로그인 후 복사

프로그램이 pdb.set_trace()로 실행되면 프로그램은 실행을 중지하고 pdb 디버깅 모드로 들어갑니다. 이 모드에서는 일부 명령을 입력하여 변수 값 보기, 코드 실행 등을 수행할 수 있습니다. 예를 들어 다음 명령문을 실행하려면 n 명령을 입력하고, 변수 값을 인쇄하려면 p를 입력하고, 디버깅 모드를 종료하려면 q를 입력합니다.

이러한 디버깅 팁을 사용하면 프로그램 오류를 더 쉽게 찾을 수 있습니다. 새로운 프로그램을 개발하든 기존 프로그램을 개선하든 이러한 기술을 익히는 것은 유용합니다.

위 내용은 Python 디버깅 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿