程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
目前创新互联公司已为上千多家的企业提供了网站建设、域名、雅安服务器托管、网站托管、企业网站设计、市北网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
print(‘here’) # 可以发现某段逻辑是否执行 # 打印出变量的内容 最简单 print() 只是影响代码美观,而且需要在后面删掉,比较麻烦
断言 凡是用print来辅助查看的地方,都可以用断言(assert)来替代:
# err.py
def foo(s):
n = int(s)
assert n != 0, 'n is zero!'
return 10 / n
def main():
foo('0')
assert false, ‘blabla’
# 如果条件不成立,则打印出 ‘blabla’ 并抛出AssertionError异常 assert 语句的作用是:当条件表达式的值为真时,该语句什么也不做,程序正常运行;反之,若条件表达式的值为假,则 assert 会抛出 AssertionError 异常。其中,[,描述信息] 作为可选参数,用于对条件表达式可能产生的异常进行描述。
例如:
s_age = input("请输入您的年龄:")
age = int(s_age)
assert 20 "年龄不在 20-80 之间"
print("您输入的年龄在20和80之间")
程序运行结果为: 请输入您的年龄:10
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 3, in
assert 20 "年龄不在 20-80 之间"
AssertionError: 年龄不在 20-80 之间
通过运行结果可以看出,当 assert 中条件表达式的值为假时,程序将抛出异常,并附带异常的描述性信息,与此同时,程序立即停止执行。
通常情况下,assert 可以和 try except 异常处理语句配合使用,以前面代码为例:
try:
s_age = input("请输入您的年龄:")
age = int(s_age)
assert 20 "年龄不在 20-80 之间"
print("您输入的年龄在20和80之间")
except AssertionError as e:
print("输入年龄不正确",e)
程序运行结果为:
请输入您的年龄:10
输入年龄不正确 年龄不在 20-80 之间
通过在程序的适当位置,使用 assert 语句判断变量或表达式的值,可以起到调试代码的作用。 当在命令行模式运行 Python 程序时,传入 -O(注意是大写)参数,可以禁用程序中包含的 assert 语句。
可以通过 pdb、IDE 等工具进行调试。
调试的具体方法这里不展开。
Python 中有两个内置方法在这里也很有帮助:
locals: 执行 locals() 之后, 返回一个字典, 包含(current scope)当前范围下的局部变量。 globals: 执行 globals() 之后, 返回一个字典, 包含(current scope)当前范围下的全局变量。
当前名称:python中调试方法
文章网址:http://www.shufengxianlan.com/qtweb/news46/22746.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联