python main调试_Python 调试方法

导读

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

3-3.jpg

1、print

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')

2、assert

assert false, 'blabla'

# 如果条件不成立,则打印出 'blabla' 并抛出AssertionError异常

assert 语句的作用是:当条件表达式的值为真时,该语句什么也不做,程序正常运行;反之,若条件表达式的值为假,则 assert 会抛出 AssertionError 异常。其中,[,描述信息] 作为可选参数,用于对条件表达式可能产生的异常进行描述。

例如:

s_age = input("请输入您的年龄:")

age = int(s_age)

assert 20 < age < 80 , "年龄不在 20-80 之间"

print("您输入的年龄在20和80之间")

程序运行结果为:

请输入您的年龄:10

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\1.py", line 3, in assert 20 < age < 80 , "年龄不在 20-80 之间"

AssertionError: 年龄不在 20-80 之间

通过运行结果可以看出,当 assert 中条件表达式的值为假时,程序将抛出异常,并附带异常的描述性信息,与此同时,程序立即停止执行。

通常情况下,assert 可以和 try except 异常处理语句配合使用,以前面代码为例:

try:

s_age = input("请输入您的年龄:")

age = int(s_age)

assert 20 < age < 80 , "年龄不在 20-80 之间"

print("您输入的年龄在20和80之间")

except AssertionError as e:

print("输入年龄不正确",e)

程序运行结果为:

请输入您的年龄:10

输入年龄不正确 年龄不在 20-80 之间

通过在程序的适当位置,使用 assert 语句判断变量或表达式的值,可以起到调试代码的作用。

当在命令行模式运行 Python 程序时,传入 -O(注意是大写)参数,可以禁用程序中包含的 assert 语句。

3、debugger

可以通过 pdb、IDE 等工具进行调试。

调试的具体方法这里不展开。

Python 中有两个内置方法在这里也很有帮助:

locals: 执行 locals() 之后, 返回一个字典, 包含(current scope)当前范围下的局部变量。

globals: 执行 globals() 之后, 返回一个字典, 包含(current scope)当前范围下的全局变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值