码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【python经验总结】我与bug的那些日子


    【python经验总结】我与bug的那段岁月

    💖💖💖💕💕💕欢迎来到本博客💕💕💕💖💖💖
    .
    🎁支持:如果觉得博主的文章写得还说得过去或者博客对您有帮助的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

    🎉🎉Welcome to my blog!🎉🎉

    📃个人CSDN博客主页:热爱科技的刘同学🌈🌈🌈

    我学习编程六年,其中python就得占用我四、五年的时间。在这四五年里,bug这一词光是听,我的耳朵也该起茧子了。虽然bug没有给我带来过什么“灭顶之灾”,但这仍然无法改变我对bug的看法。

    对付bug的有效方法不是一味地避其锋芒,而是直面它或是将它扼杀在祸根之中。

    在这里插入图片描述

    举个例子。当我们身后有一堵墙、面前有无尽的黑暗时,我们不会像鸵鸟一样一头扎在墙根,我们会背靠着墙,直面未知与黑暗!

    读完以下内容,相信你一定能将bug扼杀在祸根之中!

    文章目录

    • 【python经验总结】我与bug的那段岁月
    • 一、常见类型
      • (一)粗心导致语法错误
      • (二)知识点不熟练
      • (三)思路不清晰
      • (四)被动掉坑
        • 1、基础形式
        • 2、拓展模式
          • try-except-else
          • try-except-else-finally
    • 二、常见异常类型
    • 三、Traceback模块的使用

    一、常见类型

    (一)粗心导致语法错误

    例如:

    1. 漏了末尾冒号;
    2. 缩进错误;
    3. 英文符号错用为中文符号;
    4. 字符串拼接时,把字符串、数字类型拼接到一起;
    5. 没有定义变量;
    6. == 错用成 =。

    (二)知识点不熟练

    浅浅的举两个例子吧,毕竟python的语法有那么多:

    1. 索引越界;
    2. append()不按照规定使用。

    (三)思路不清晰

    有很多看似很牛逼的项目,只用一个文件,几百行代码就能搞定,堪称高效。但如果你在里面好好的逛了一圈之后就一定会惊呼:“注释都救不了他了!”

    (四)被动掉坑

    代码逻辑没有错误,只因用户操作不当或意外情况导致程序崩溃。

    解决方案:异常处置机制(出现异常及时捕获,内部消化,确保程序运行)

    1、基础形式

    try:
    	......
    	......
    	......  # 可能出现异常的代码
    except xxx:  # 填入可能会报错问题。若无法预知,可以直接使用 excpet:
    	......
    	......
    	......  # 报错后执行的代码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、拓展模式

    try-except-else

    若try块中没有抛出异常,则执行else块;若抛出异常,则执行except。

    举个整数相除的例子:

    try:
        a = int(input('请输入一个整数:'))
        b = int(input('请输入一个整数:'))
        c = a / b
    except BaseException as e:
        print('有错误', e)
    else:
        print(c)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    try-except-else-finally

    若try块中没有抛出异常,则执行else块;若抛出异常,则执行except;无论是否有异常,finally都会执行。

    用finally优化一下刚才的程序:

    try:
        a = int(input('请输入一个整数:'))
        b = int(input('请输入一个整数:'))
        c = a / b
    except BaseException as m:
        print('有错误', m)
    else:
        print(c)
    finally:
        print('程序执行完毕!')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    二、常见异常类型

    序号名称释义
    1ZeroDivisionError除(或取模)零(所有数据类型)
    2ImportError序列中没有此索引
    3KeyError映射中没有这个键
    4NameError未声明/初始化变量
    5SyntaxError语法错误
    6ValueError传入无效参数
    7TypeError不同类型连接在一起

    三、Traceback模块的使用

    对比起前两个程序,使用Traceback模块明显要

    import traceback
    
    try:
        print('----------------------------')
        print(10/0)  # 运行后会报错的
    except:
        traceback.print_exc()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    262-视口,布局视口,视觉视口,移动端适配,less语法,比哪里,DPR,RRI,less的弊端,运算,嵌套,混合,继承,混入,运算,
    【测试人生】游戏业务测试落地精准测试专项的一些思路
    大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求
    LuaJIT编写的解析十六进制数据
    可能是01背包问题最全面的解析
    Java的数据库编程-----JDBC
    Linux高并发服务器开发(四)进程间通信
    nacos源码
    动态路由协议的分类、动静态路由优缺点、RIP简介、组播单播广播详解(附图)
    《Principles of Model Checking》 Chapter 3 Linear time properties (线性时间特性)
  • 原文地址:https://blog.csdn.net/weixin_41102528/article/details/126606193
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号