python崩溃bug,python中的异常处理

  python崩溃bug,python中的异常处理

  本文主要介绍Python异常常见的Bug类型解决方案,主要分享一些由于粗心大意和知识不熟练导致的语法错误,以及被强制入坑等。文章介绍了非常详细的需求,供小伙伴参考。

  00-1010一、粗心导致的SyntaxError1、输入错误2、循环语句错误3、赋值错误2、知识不熟练导致的错误Bug1、IndexError2、使用append()函数导致的错误3、思路不清导致的问题解决方法1。使用print()功能2,使用 # 暂时注销一些代码4。

  

目录

  

一、粗心导致的语法错误SyntaxError

  年龄=输入(请输入您的年龄:)

  如果年龄=18:

  打印(‘成年人需要做事。)

  错误:type error :“str”和“int”的实例之间不支持“=”

  因为输入返回值是字符串,所以不能与整数进行比较。

  在解决办法:输入前面加int(),把input输入的数字转换成整数类型,这样就可以比较数据了。

  Age=int(输入(请输入您的年龄:))

  如果年龄=18:

  打印(‘成年人需要做事。)

  

1、input输入报错

  而i10:

  打印(一)

  循环语句报错:错误原因,没有循环变量的初始值,也没有循环变量的增量,那么括号不规范,用的是中文括号。

  添加解决方法:虚幻变量的初始值,添加循环变量的增量,修正非标准括号(使用中文括号)。

  循环要有三要素:

  I=1 #循环变量的起始值

  While i103360 #循环的条件语句

  打印(一)

  I=变量的1 #增量

  

2、循环语句报错

  对于范围(3):中的I

  Uname=input(请输入用户名:)

  Upwd=input(请输入密码:)

  如果uname=admin 并且upwd=pwd:

  打印(登录成功!)

  其他

  打印(“输入错误”)

  其他

  Print(对不起,我输入错了三次)

  错误:语法错误:无效语法。可能你说的是=或者 3360=而不是=?

  错误多处:=是赋值,而==是比较。if语句在比较时使用=赋值语句,所以有错误。还有未定义的比较内容admin和then else语句没有加:

  在解决方法: if语句的比较处把=改为==因为=是赋值,==是比较,然后在循环开始前加上用于比较的变量,然后在else语句后加上冒号3360。

  admin=华

  密码=123456

  对于范围(3):中的I

  Uname=input(请输入用户名:)

      upwd=input("请输入密码:")

      if uname==admin and upwd==pwd:

          print("登陆成功!")

      else:

          print("输入有误")

  else:

      print("对不起,三次均输入错误")

  粗心导致错误的自查宝典:

  

  • 1、漏了末尾的冒号,如if语句,循环语句,else子句等。
  • 2、缩进错误,该缩进的没缩进,不该缩进的却缩进了。
  • 3、把英文符号写成中文符号没比如说:引号,冒号,括号
  • 4、字符串拼接的时候,把字符串和数字拼接在一起
  • 5、没有定义变量,比如说while的循环条件变量
  • 6、"=="比较运算符和"="赋值运算符的混用

  

  

二、知识不熟练导致的错误Bug

  

  

1、索引越界问题 IndexError

  

lst=[11,22,33,44]

  print(lst[4])

  

错误:IndexError: list index out of range 索引越界,虽然有四个数,但索引不是从一开始算,正索引是从0开始算,负索引是从-1开始算

  

  解决办法: 改写为正确的索引

  

lst=[11,22,33,44]

  print(lst[3])

  

  

2、append()函数的使用报错

  

lst=[]

  lst=append("A","B","C")

  print((lst))

  

报错:NameError: name 'append' is not defined 错误的方法使用append()函数

  

  解决方法:掌握正确的使用函数的技巧,使用函数不是使用=调用,而是使用.去调用函数,并且append()函数一次只能增加一个元素

  

lst=[]

  lst.append("A")

  lst.append("B")

  lst.append("C")

  print((lst))  #返回值[A, B, C]

  知识点掌握不熟练的导致的错误,唯一的解决方法就是练练练

  

  

三、思路不清晰导致的问题解决方案

  

  

1、使用print()函数

  将出错的代码用print输出,将有问题的代码注释掉,一步一步的调试,最后将想要的结果输出

  

  

2、使用"#"暂时注销部分代码

  解决方法:多加练习,掌握基础知识

  

  

四、被动掉坑

  程序代码逻辑没有错,知识因为用户错误操作或者一些"例外情况"而导致的程序崩溃

  被动掉坑问题的解决方案:

  python提供了异常处理机制,可以在异常出现时即使补货,然后内部消化,让程序继续运行
异常捕获处理 try: except xxx:语句 xxx为错误类型

  try:用于放入容易出错的代码
except用于处理异常并正常输出后续代码,可以使代码不会报错结束,可以出现多个except语句来处理多种异常类型。

  使用方式:

  

try:

  将容易出错的代码放入其中
易出错代码
易出错代码

  

  

except 可能出现的类型:

  print(捕获异常后用于提示的话语)

  

  

except 可能出现的类型:

  print(捕获异常后用于提示的话语)

  

  一般代码:

  

a=int(input("请输入第一个整数:"))

  b=int(input("请输入第二个整数:"))

  result=a/b

  print("结果为:",result)

  极容易出现报错,导致终止后面的程序,比如整除不能输入0,不能输入英文,只要输入了,那么就会报错结束程序

  所以就需要使用到try: except

  

try:    #将易错代码放进去

      a=int(input("请输入第一个整数:"))

      b=int(input("请输入第二个整数:"))

      result=a/b

      print("结果为:",result)

  except ZeroDivisionError:   #不允许被0除的异常(异常类型在程序报错时会出现,将这种异常类型放入后,出现该异常就会自动处理,而不会报错终止程序)

      print("对不起,除数不允许为0")  #出现该异常后的提示

  except ValueError:    #输入异常,int括号里的input只能输入数字串,不能输入字符串

      print("只能输入数字串")   #出现该异常后的提示

  print("程序结束")    #程序可能出现的异常都用except写出来了,所以不管出现什么异常,后面的程序一样运行

  

  到此这篇关于Python异常之常见的Bug类型解决方法的文章就介绍到这了,更多相关Python异常解决内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: