>  기사  >  백엔드 개발  >  Python 디버깅, print() 및 어설션(예제 분석 2)

Python 디버깅, print() 및 어설션(예제 분석 2)

乌拉乌拉~
乌拉乌拉~원래의
2018-08-23 13:38:041733검색

다음 글에서는 Python 디버깅에 대해 알아봅니다. python 디버깅의 몇 가지 방법을 배우고 Python 프로그래밍에서 Python 디버깅이 어떤 역할을 할 수 있는지 알아보세요.

디버깅이 필요한 이유

프로그램을 한 번 작성하고 정상적으로 실행될 확률은 매우 작아 기본적으로 1%를 넘지 않습니다. . 수정해야 할 다양한 버그가 항상 존재합니다. 어떤 버그는 매우 간단합니다. 어떤 버그는 매우 복잡합니다. 따라서 오류가 발생했을 때 어떤 변수가 올바른 값을 가지고 있는지 알아야 합니다. 버그를 수정하기 위해 프로그램을 디버깅하는 완전한 수단입니다. 그렇다면 python 을 디버깅하는 방법은 무엇입니까? 대답은 아래에 주어질 것입니다.

첫 번째 방법은 간단하고 직접적이며 거칠고 효과적입니다. print()를 사용하여 문제가 있을 수 있는 변수를 인쇄하는 것입니다.

def foo(s):
    n = int(s)
    print('>>> n = %d' % n)
    return 10 / n
def main():
    foo('0')
main()

실행 후 출력에서 ​​인쇄된 변수 값을 찾습니다.

$ python err.py
>>> n = 0
Traceback (most recent call last):
  ...
ZeroDivisionError: integer division or modulo by zero

print() 사용의 가장 큰 단점은 나중에 삭제해야 한다는 점을 생각해 보세요. print()는 프로그램의 모든 곳에 있으며 실행 결과에도 많은 스팸이 포함됩니다. 그래서 두 번째 방법이 있습니다.

두 번째 방법 은 다음과 같습니다. print()를 사용하여 보기를 지원하는 경우 대신 어설션을 사용할 수 있습니다.

def foo(s):
    n = int(s)   
     assert n != 0, 'n is zero!'
    return 10 / n
    
    def main():
    foo('0')
#🎜 🎜#assert는 표현식 n != 0은 True여야 합니다. 그렇지 않으면 프로그램 작동 논리에 따라 다음 코드는 확실히 잘못될 것입니다.

어설션이 실패하면 Assertion 문 자체에서 AssertionError가 발생합니다.

$ python err.py
Traceback (most recent call last):
  ...
AssertionError: n is zero!

프로그램이 어설션으로 가득 차 있으면 print()보다 나을 것이 없습니다. 그러나 -O 매개변수를 사용하면 Python 인터프리터를 시작할 때 어설션을 끌 수 있습니다.

$ python -O err.py
Traceback (most recent call last):
  ...
ZeroDivisionError: division by zero

해제한 후에는 모든 어설션 문을 패스로 볼 수 있습니다.

위 내용은 모두 이 글의 내용입니다.

python 디버깅 관련 지식을 주로 소개합니다. . 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다.

더 많은 관련 지식을 보려면 PHP 중국어 웹사이트

Python 튜토리얼 컬럼을 방문하세요.

위 내용은 Python 디버깅, print() 및 어설션(예제 분석 2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.