Python debugging; print() and assertions (example analysis 2)

乌拉乌拉~
Release: 2018-08-23 13:38:04
Original
1709 people have browsed it

In the following article, we will learn about debugging in python. Learn about some python debugging methods, and know what role python debugging can play in python programming.

Why debugging is necessary

The probability that the program can be written once and run normally is very small, basically no more than 1%. There are always various bugs that need to be fixed. Some bugs are very simple. You can tell by looking at the error message. Some bugs are very complicated. We need to know which variables have correct values ​​and which variables have wrong values ​​when an error occurs. Therefore, we need a complete set of means to debug the program. to fix the bug. So how does python debug? The answer will be given below.

The first method is simple, direct, crude and effective, which is to use print() to print out the variables that may have problems and have a look:

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

Find in the output after execution Printed variable value:

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

The biggest disadvantage of using print() is that you have to delete it in the future. Think about the fact that print() is everywhere in the program, and the running results will also contain a lot of junk information. So, we have a second method.

The second method is: wherever print() is used to assist viewing, assertion (assert) can be used instead:

def foo(s):
    n = int(s)   
     assert n != 0, 'n is zero!'
    return 10 / n
    
    def main():
    foo('0')
Copy after login

assert means , the expression n != 0 should be True, otherwise, according to the logic of program operation, the following code will definitely go wrong.

If the assertion fails, the assert statement itself will throw AssertionError:

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

If the program is full of asserts, it will be no better than print(). However, you can use the -O parameter to turn off assert when starting the Python interpreter:

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

After turning it off, you can view all assert statements as passes.

The above is all the content described in this article. This article mainly introduces the relevant knowledge of python debugging. I hope you can use the information to understand the above content. I hope what I have described in this article will be helpful to you and make it easier for you to learn python.

For more related knowledge, please visit the Python tutorial column on the php Chinese website.

The above is the detailed content of Python debugging; print() and assertions (example analysis 2). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!