다음 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!