#每天一点Python——83
#python报错原因
python
'''
bug:
在计算机程序中,bug是指程序中的错误或故障,导致程序不能按照预期执行或产生不正确的结果。
这种错误可能是由编码或设计错误、运行环境不一致、输入数据异常等多种原因导致的。
常见的bug类型包括以下几种:
语法错误:程序员在编写代码时使用了不符合语法规则的语句或表达式,导致程序无法正常编译或运行。
逻辑错误:程序员在编写代码时错误地理解了问题,导致程序没有按照预期执行或产生不正确的结果。
数据错误:程序员在处理数据时出现了错误,导致程序无法正确处理数据或产生错误的输出。
界面错误:程序的用户界面存在问题,如按钮无法按下、菜单无法打开等。
性能错误:程序在处理大量数据或执行复杂操作时运行缓慢或崩溃。
安全错误:程序存在安全漏洞,可能被黑客攻击或注入恶意代码。
兼容性错误:程序在不同的平台或软件版本上存在兼容性问题,导致程序无法正常运行或表现异常。
总之,在软件开发过程中,需要注意各种类型的bug,采取有效的测试和调试方法,及时发现和修复bug,确保软件的稳定性和正确性。
'''
#综上所述:就是练练练,在实践中得到经验
python
'''
被动掉坑:
程序代码逻辑没有错,是因为用户的错误操作或者一些例外情况导致程序崩溃
被动掉坑异常处理机制:try---except
可以在异常出现的时候进行捕获,然后内部'解决',让程序继续运行
'''
python
'''
#示例:输入两个整数并且进行除法运算:
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
r=a/b
print('结果为:',r)
'''
一般用户在操作这串代码时候,不小心输入了错误的字母
或者是输入了0做除数,所以报错【因为字母转不了整数,0不可以做除数】
这种情况就用到异常处理机制try---except
因为程序一旦出错,他就会不再运行
try:
可能出现异常的代码
execept xxxxx【异常类型】:
异常处理代码【报错后执行的代码】
'''
python
#譬如我不小心输入了0做除数
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
r=a/b
print('结果为:',r)
'''
我输入的结果如下:
请输入第一个整数:4
请输入第二个整数:0
Traceback (most recent call last):
File "C:\Admin\AppData\Roaming\JetBrains\PyCharmCE2022.2\scratches\scratch_2.py", line 43, in <module>
r=a/b
ZeroDivisionError: division by zero
ZeroDivisionError就是他的异常类型
'''
python
#我们就可以把代码改为:
try:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
r=a/b
print('结果为:',r)
except ZeroDivisionError:
print('除数不能为0')
print('程序结束')
'''
输出结果:【处理了异常情况,程序继续执行】
请输入第一个整数:4
请输入第二个整数:0
除数不能为0
程序结束
'''
'''
要是我们不小心没输入数据呢?
结果
请输入第一个整数:3
请输入第二个整数:
Traceback (most recent call last):
b = int(input('请输入第二个整数:'))
ValueError: invalid literal for int() with base 10: ''
#这个时候异常就与之前的异常不一样,
当捕获的异常和你出现的异常类型不一致的时候
可以采用多个except结构:
'''
python
#多个except结构:
'''
捕获异常的顺序按
照先子类后父类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException
【释义:就是先捕捉小的,再捕捉大的】
try:
可能会出异常的代码
except xxx【异常类型1】:
异常处理代码
except xxx【异常类型2】:
异常处理代码
except BaseException【最大的异常类型】:
异常处理代码
'''
#代码演示:
try:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
r=a/b
print('结果为:',r)
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('只能输入数字串')
print('程序结束')
'''
三种主动输错结果演示:
请输入第一个整数:1
请输入第二个整数:
只能输入数字串
程序结束
请输入第一个整数:a
只能输入数字串
程序结束
请输入第一个整数:1
请输入第二个整数:0
除数不能为0
程序结束
'''