Bug指的是检测并排除计算机程序/机器中的故障。
常见类型:
1,漏了末尾的冒号,如if语句,循环语句,else子句等。
2,缩进错误,该缩进的没有缩进,不该缩进的乱缩进。
3,把英文符号写成中文符号,例如:引号、冒号、括号。
4,字符串拼接的时候,把字符串和数字拼在一起。
5,没有定义变量,例如:while循环条件的变量没有定义
6,"=="比较运算符和"="赋值运算符的混用
解决思路不清导致的问题的有两种:
1,第一种是使用print()函数
2,第二种使用"#"暂时注释部分代码
异常处理
try...except的语法结构:
try: 可能会抛出异常的代码 except 异常类型: 异常处理代码(报错后执行的代码)
try...except..except的语法结构:
try: 可能会抛出异常的代码 except 异常类型A: 异常处理代码(报错后执行的代码) except 异常类型B: 异常处理代码(报错后执行的代码)
try: num1=int(input('请输入一个整数:')) num2=int(input('请输入另一个整数:')) result=num1/num2 print('结果为',result) except ZeroDivisionError: print('除数不能为0') except ValueError: print('不能将字符串转换为整数') except BaseException: print('未知异常')
try...except...else的语法结构:
try: 可能会抛出异常的代码 except 异常类型: 异常处理代码(报错后会执行) else: 没有抛异常要执行的代码
try...except...else...finally的语法结构:
try: 可能会抛出异常的代码 except 异常类型: 异常处理代码(报错后会执行) else: 没有抛异常要执行的代码 finally: 无论是否异常都要执行的代码
try: num1=int(input('请输入一个整数:')) num2=int(input('请输入另一个整数:')) result=num1/num2 except ZeroDivisionError: print('除数不能为0') except ValueError: print('不能将字符串转换为整数') except BaseException: print('未知异常') else: print('结果为', result) finally: print('程序执行结束')
raise 抛出一个异常,从而提醒程序出现了异常情况,程序能够正确地处理这些异常情况。
语法结构:
raise [Exception类型(异常描述信息)]
try: sex=input('请输入性别:') if sex!='男' and sex!='女': raise Exception('输入有误') else: print('你的性别是',sex) except Exception as e: print(e)
常见的异常类型
| 异常类型 | 描述说明 |
| ZeroDivisionError | 当除数为0时,引发的异常 |
| IndexError | 索引超出范围所引发的异常 |
| KeyError | 字典取值时key不存在的异常 |
| NameError | 使用一个没有声明的变量时引发的异常 |
| SyntaxError | 语法错误 |
| ValueError | 传入的值错误 |
| AttributeError | 属性或方法不存在的异常 |
| TypeError | 类型不合适引发的异常 |
| IndentationError | 不正确的缩进引发的异常 |
# 1)ZeroDivisionError print(10/0) # 2)IndexError lst=[10,20,30] print(lst[4]) # 3)KeyError d={'hello':10,'world':20} print(d['python']) # 4)NameError print(age) # 5)SyntaxError print('hello) # 6)ValueError print(int('a')) # 7)AttributeError i=10 print(i.name) # 8)TypeError print('a'+10) # 9)IndentationError print('abc')
posted on
浙公网安备 33010602011771号