首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

12 Python 基础: 如何优化代码质量,错误、调试和测试你必须要懂.md

by zero 根据错误类型ZeroDivisionError,我们判断,int(s)本身并没有出错,但是int(s)返回0,在计算10 / 0出错,至此,找到错误源头。...(s) logging.info('n = %d' % n) print(10 / n) logging.info()就可以输出一段文本。...import pdb s = '0' n = int(s) pdb.set_trace() # 运行到这里会自动暂停 print(10 / n) 运行代码,程序会自动在pdb.set_trace()暂停并进入...这种以测试驱动开发模式最大好处就是确保一个程序模块行为符合我们设计测试用例。在将来修改时候,可以极大程度地保证该模块行为仍然是正确。...,我们期待抛出AttributeError: with self.assertRaises(AttributeError): value = d.empty 运行单元测试 一旦编写好单元测试

1.2K30

NumPy 秘籍中文第二版:八、质量保证

: Linux 包名称也pyflakes。...它不是十分活跃开发工具,但它在此提到速度又足够好。 在编写本书,最新版本是 0.8.19,最近一次更新是在 2011 年。Pychecker 尝试导入每个模块并对其进行处理。...我们通过调用factorial()函数并运行以下代码来运行测试: 一个正数-幸福道路!...(-10)) factorial()函数和整个单元测试代码如下: import numpy as np import unittest def factorial(n): if n == 0:...要特别注意用于注释方法文本。 它与业务场景文件中文本匹配,并且我们使用正则表达式获取输入参数。 在前两个方案中,我们匹配数字,在最后一个方案中,我们匹配任何文本

79220

Python: 调试代码和单元测试

代码示例: def foo(s): n = int(s) print('>>> n = %d' % n) return 10 / n def main(): foo('...0') main() >>> n = 0 ZeroDivisionError: division by zero 此方法缺点是在程序上线需要删除多余print语句。...2 assert(断言) assert(断言),是Python中用于调试工具,依赖于内置变量__debug__,当其取值Trueassert才会执行。...在命令提示符中,进入err.py文件所在文件夹,运行如下代码: python -O err.py 会得到错误提示: ZeroDivisionError: division by zero 在程序上线一般会禁用断言...3 断点调试 断点(Break point)是指在代码中指定位置,当程序运行到此位置时中断下来,开发者可查看此时各个变量值。因断点中断程序并没有结束,可以选择继续执行。

79210

Python 异常处理#学习猿地

> 异常是一个事件,并且这个异常事件在我们程序员运行过程中出现,会影响我们程序正常执行。 异常分两种:     1. 语法错误导致异常     2. 逻辑错误导致异常 ### 如何处理异常?...这时可以去判断来预防 n2 = 3 if isinstance(n2,int):     res = 10+n2     print(res) ``` 2....如果引发了非指定异常,则无法处理 try:     s1 = 'hello'     int(s1) # 会引发 ValueError except ValueError as e: # except...多分支处理异常类.不同异常会走向不同except处理 s1 = 'hello' try:     # int(s1) # ValueError     s1[5]    # IndexError except...                | |        TypeError        |                  对类型无效操作                  | |        ValueError

1.1K10

【Python3之异常处理】 转

其他语法错误 逻辑错误 #用户输入不完整(比如输入空)或者输入非法(输入不是数字) num=input(">>: ") int(num) 输出 >>: fsf Traceback (most recent...: invalid literal for int() with base 10: 'fsf' 2.异常定义 程序执行过程中出现问题导致程序无法执行 异常分类: 程序遇到逻辑或算法错误 运行过程中计算机错误...缩进错误 TabError Tab 和空格混用 SystemError 一般解释器系统错误 TypeError 对类型无效操作 ValueError 传入无效参数 UnicodeError...,执行你其定制逻辑,使程序不会崩溃,这就是异常处理 2.异常处理意义 python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理情况下,程序就在当前异常处终止,后面的代码不会运行...int() with base 10: 'hello' try-finally 语句 try-finally 语句无论是否发生异常都将执行最后代码。

1.2K20

python 异常处理

RuntimeError 一般运行时错误 RuntimeWarning 可疑运行行为(runtime behavior)警告 StopIteration 迭代器没有更多值 SyntaxError...Unicode相关错误(ValueError子类) UnicodeEncodeError Unicode编码错误(UnicodeError子类) UnicodeDecodeError Unicode...解码错误(UnicodeError子类) UserWarning 用户代码生成警告 ValueError 传入无效参数 ZeroDivisionError 除数零 l = [1,2,3,4,5...() with base 10: 'ffff' hahaha 用户手动引发异常 当某些情况,用户希望自己引发一个异常时候,可以使用 raise 关键字来引发异常 # raise 案例 try:...I love you 3.1415926 ValueError 我肯定会被执行 # else语句案例 try: num = int(input("Please input your number

2.3K87

Python基础语法-函数错误处理-try...except语句

在Python中,try...except语句是一种用于捕获和处理异常结构。当您编写代码,可能会遇到各种错误和异常,例如输入无效数据、打开不存在文件等。...使用try...except语句可以使您代码更健壮,可以在运行时捕获并处理这些异常,避免程序崩溃或产生不良影响。...以下是一个使用try...except语句示例:try: x = int(input("Please enter a number: ")) y = 10 / x print("The...例如::try: x = int(input("Please enter a number: ")) y = 10 / x print("The result is:", y)except...它要求用户输入一个数字,然后计算10除以该数字结果。如果用户输入无效数据,例如字母而不是数字,Python将引发ValueError异常。

87830

深入探索Python中单元测试与TDD实践指南

, 2) == -5运行pytest来确保这些测试用例通过:pytest测试浮点数我们还可以测试函数在处理浮点数行为:# test_my_math_float_numbers.pyfrom my_math...pytest来验证这些测试用例是否通过:pytest测试除数0情况最后,我们应该测试当除数0函数行为,确保它们会抛出预期异常:# test_my_math_divide_by_zero.pyimport...divide(10, 0)再次运行pytest来验证这个测试用例:pytest确保所有的测试用例都通过后,我们就可以确信我们函数在各种情况下都能正确工作。...(): assert divide(10, 0) == float('inf') # 除以0应该返回无穷大再次运行pytest来验证边界情况测试用例是否通过:pytest如果测试通过,那么我们函数在边界情况下行为就是正确...这样,我们就可以确保我们代码在依赖外部模块也能正常工作。总结在这篇文章中,我们深入探讨了Python中单元测试、测试驱动开发(TDD)、集成测试和模拟重要性和实践方法。

38520

Python3 常见错误和异常处理

)试图访问已经垃圾回收了对象 使用一个weakref代理访问已经被垃圾回收对象,会产生 RuntimeError 一般运行时错误 如果没有其他更特定异常可用,就要使用RuntimeError异常...如果错误发生在解释器本身,会产生 TypeError 对类型无效操作 使用+拼接时候 必须使用字符串,或者将数字转化成字符串 ValueError 传入无效参数 如果一个函数接收到值类型正确,但是值不合法产生...UnicodeError Unicode 相关错误 ValueError一个子类,出现Unicode问题产生 UnicodeDecodeError Unicode 解码错误 \ UnicodeEncodeError...#如果引发了'name'异常,获得附加数据 else: #如果没有异常发生 以下为简单try....except...else语法: try: int("aaa")...print("finally") #输出: ValueError: invalid literal for int() with base 10: 'aaa' finally 抛出异常 Python

1.5K20

python异常处理、自定义异常、断言原理与用法分析

常用异常有: ValueError :传入无效错误参数 ? TypeError:进行了对类型无效操作 ? IndexError:序列中没有此索引 ? NameError:使用未定义变量 ?...try: s=input("请输入要int字符串:") i=int(s) except ValueError as e: print(e) else: print("这里是当没有发生异常操作...") finally: print("这里是即使发生异常也会执行代码") """第一次运行结果: 请输入要int字符串:123 这里是当没有发生异常操作 这里是即使发生异常也会执行代码...""" """第二次运行结果 请输入要int字符串:abc invalid literal for int() with base 10: 'abc' 这里是即使发生异常也会执行代码 """ except...""" 结果: 我异常 """ ---- 断言: 意义:与其让程序在运行最崩溃,不如在出现错误条件就崩溃【比如说,老司机想要开车,随便开车风险很大,使用断言就好像先判断路况如何,然后再开车,

52961

Python教程(19)——python异常处理

异常可以在程序中任何地方发生,可能是由错误输入、无效操作、资源不足、硬件问题或其他未预料情况引起。例如,当尝试除以零、访问不存在文件、连接失败等情况发生,都会引发异常。...try: num = int(input("请输入一个整数:")) result = 10 / num print("结果:", result) except ValueError:...print("输入不是有效整数") 在这个示例中,int(input("请输入一个整数:"))语句可能引发ValueError异常,如果用户输入不是有效整数。...名称错误,通常是在代码中使用了一个未定义变量或函数名 TypeError 类型错误,通常是在进行不兼容类型操作引发 ValueError 值错误,通常是在逻辑上不合理或无效值被传递引发...,通常是在尝试进行除以零运算引发 AssertionError 断言错误,通常是在调用assert语句条件False引发 ImportError 导入错误,通常是在导入模块或包出现问题引发

15910

Django+Celery学习笔记2——redis异步执行定时任务demo

:   结构   Celery异步任务示例   先准备环境: redis == 3.2.1 celery == 4.3.0 python == 3.6.5   新建一个项目testcelery,celery...'开始测试')   在执行异步任务,要保证redis服务是启动,如图:    然后进入你tasts.py文件所在目录下,执行命令: celery -A tasks worker --loglevel...=info   如果是win10,并且使用我上面的环境,还需要安装一个 pip install eventlet   不然worker会报错,如: ValueError: not enough values...30 seconds sender.add_periodic_task(30.0, test.s('python'), expires=10) # Executes every Monday..., )   定时任务需要启动一个监控服务beat来监听心跳,还是进入tasks.py文件所在目录,执行命令: celery -A tasks beat   运行结果:   总结   以上就是

53440
领券