Python常见报错及解决方案,BUG拯救指南

Selenium3+python3自动化(三十八)--异常后截图(screnshot)、只截某个元素的图 前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望对当前屏幕截图,留下证据。 selenium可以实现截取全图,那么如何截取某个元素的图?不要全部的,只要某个元素。。 一、selenium截图(截取全屏)方法 1.get_screenshot_as_file(self,filename)、save_screenshot(self, filename) --这个方法是获取当前wi... 阅读详情

Python常见报错及解决方案

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。

今天,我们就做了一期Python常见报错的分享,拯救你的代码!

01

缩进错误(IndentationError)

在Python中,所有代码都是通过正确的空格排列的。所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回一个错误函数。

Python代码遵循PEP8空白规范,每一级缩进使用4个空格。

错误示例

a=1
b=2
if a<b:
print a

修正

a=1
b=2
if a<b:
    print a

02

Tab 和空格混用(TabError)

此类报错是由于同时使用制表符和空格进行编码导致的,tab键本质上是制表符,而非缩进符。由于不同文本编辑器中制表符代表的空格宽度不一,建议使用空格。

03

语法错误(SyntaxError)

语法错误的原因包含下列三种:

  1. 无效语法(invalid syntax)

    标点符号遗漏,中英文符号混用,拼写错误,变量名或者函数名使用了关键字。

  2. 标识符中有无效字符(invalid character in identifier)

    代码中出现了无法识别的字符,检查一下是否有多余字符或者中文字符。

  3. 检查到不完整的字符串(EOL while scanning string litera)

    很多情况下是由于字符串两边的引号不统一。

错误示例

print( 'hello', 'world')

错误原因:逗号为中文逗号

报错信息:SyntaxError: invalid character inidentifier

result = (1024+(512*2)/128

错误原因:圆括号没有成对出现

报错信息:SyntaxError:unexpected EOF whileparsing

if name =="A"
print("hello")

错误原因:忘记在if/elif/else/while/for/def/class等语句末尾添加冒号

报错信息:SyntaxError:invalid syntax

03

变量名错误(NameErro)

变量名错误是最普通也是最常会遇到的内建报错类型,经常会出现在Python变量命名上,如果找不到变量就会引发NameError。关于变量名的规则,需要牢记以下几条:

  • 变量名只能包含字母、数字和下划线,不可用数字开头;

  • 变量名不能包含空格,但可使用下划线来分隔其中的单词;

  • 不要将Python关键字和函数名用作变量名,如print;

  • 变量名应既简短又具有描述性;

  • 慎用小写字母l和大写字母O,因为容易被错看成数字1和0。

出现变量名错误,可以查看变量是否赋值,是否存在大小写不统一或者变量名写错了的情况,找到后加以修正。

错误示例

message = "Hello!"
print(mesage)

错误原因:变量名拼写错误,误将massage拼写为masge

报错信息:NameError: name 'mesage' is not defined

05

索引错误(IndexError)

索引是项目在数组或列表中的位置,当我们尝试从列表中访问元素或从列表中不存在的索引中访问元组时,就会发生这种异常。

例如,有一个包含10个元素的列表,索引在0到9之间,如果试图访问索引10或11或更多的元素,就会产生IndexError。

错误示例

a = [1,2,3]
print(a[3])

错误原因:列表a中不存在第4个索引,列表的索引从0开始编号

报错信息:IndexError: string index out of range

06

键错误(KeyError)

在读取字典中的key和value时,如 果key不存在,就会触发KeyError错误。

错误示例

d = {'a':1,'b':2}
print(d['f'])

错误原因:键‘f’不存在

报错信息:KeyError: 'f'

07

类型错误(TypeError)

在程序中使用不正确或不受支持的对象类型时,会引发该错误。如果尝试调用不可调用的对象或通过非迭代标识符进行迭代,也会引发此错误。

错误示例

age=18
print("我的年龄是"+age)

错误原因:在使用“+”做拼接的时候,必须使用字符串,或者 把数字用str()函数转化成字符串

报错信息:TypeError:can only concatenate str(not"int")to str

08

属性错误(AttributeError)

特性引用和赋值失败时会引发属性错误。

此类错误的原因是尝试访问未知的对象属性,换句话说就是找不到对应对象的属性。可以检查类中构造函数__init__()是否写正确,左右两边各两条下划线。

对于初学的小伙伴来说,代码经常出现Bug并不代表着你学得不好。若是将一个个Bug看作游戏里小怪,那么消灭Bug的过程又何尝不是升级的过程呢?

所以,努力加油吧!消灭Bug!

pyautogui.screenshot()截屏报错OSError: screen grab failed 都无法有效将这个问题解决,查了很多网上的分析,有说是安全问题,有说是刚开始用的好好的,运行几分钟之后就不行了。到这里,我有充分理由怀疑,是云上主机锁屏导致,由于先前知道云上主机是自动登录的,并且会禁用了锁屏,因此没有往这个方面去怀疑,后来,通过查阅资料发现,通过mstsc远程后,再断开,通过VNC查看桌面就处于锁屏状态,相当于电脑的显示器看到的就是锁屏状态。后面在执行任务之前,通过代码判断系统是否处于锁屏状态,则通过命令让系统强制重启,这样系统重启后,有自动登录和应用自动重启,就可以顺利截屏了。 阅读详情

相关推荐

Python常见报错及解决方案,新手看到报错再也不用怕啦

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。

weixin_69333592的博客 1465

Python常见错误(Error)一览大全——初学者必看

路漫漫其修远兮,学习python任重而道远,对于初学者来说,最难受的就是报错,其次是错误翻译好了,可是又不会改了,那么今天,我已IKUN老师的身份,结合我们常见的错误,做一个常见错误大全!!,你们以后遇到错误,可以直接在此篇进行搜索! 1、【SyntaxError: xxxxxxxxxxx】 此错误为【语法】错误 错误原因: 1、括号没写 2、冒号没写 3、关键字后面空格没空: 注意,有一些本身就是语法错误的错误,是无法进行捕获的。 2、【NameError: name 'name' is not

weixin_42636075的博客 8338

【Python新人】常见报错及解决方案,看完少走3个月的弯路,建议收藏!

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。刚转行Python程序员的前3个月,大部分时间都在处理报错。今天,我们就做了一期Python常见报错的分享,拯救你的代码!

python03014的博客 905

Python常见报错及其解决方案

Python常见报错及其解决方案

qq_56920529的博客 7200

如何修复Python中的缩进错误?

在Python中,缩进是非常重要的,因为它决定了代码块的层次结构。当出现缩进错误时,Python解释器无法正确地理解代码的逻辑,从而导致各种错误。本文将介绍如何修复Python中的缩进错误,帮助读者更好地编写和调试Python代码。

这家伙很懒,什么都没有留下 5211

小波变换(Wavelet Transform)原理及介绍

小波变换是一种多分辨率时频分析工具,克服了傅里叶变换无法定位时间信息的缺陷。通过可伸缩平移的母小波,它能同时捕捉信号的高频细节(短时特征)和低频轮廓(整体趋势)。其核心原理是利用不同尺度的小波基与信号进行内积运算,生成时频域系数矩阵。小波变换具有动态分辨率特性,高频部分时间精度高,低频部分频率分辨率好。主要应用包括瞬态事件检测、信号降噪、数据压缩(如JPEG2000)和压缩感知(如快速MRI)。

qq_42758052的博客 5486

Python常见报错及解决方案,新手拯救指南

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。

程序员小麦的博客 1472

zemax光线光扇图

通过入瞳某一坐标(PX,PY)的光线在像面上有唯一的位置(EX,EY),以EX,EY为纵坐标,以PX,PY为横坐标,分别建立坐标系,把通过入瞳的光线都在坐标系里描点就得到了光扇图。对于视场内任意一点,取其子午面内的光线,以光线在光阑面上的透射点坐标为横坐标,同时以该光线在像面上的坐标为纵坐标,描出所有点,构成的图形即为子午面光扇图。在焦点位置,曲线的斜率为0,也就是说,不管入射时的横坐标(光阑面上的位置)是多少,离轴多远,都将汇聚在焦点处。此时,子午面和弧矢面有不同的分布,两条曲线不重合。

fendoudecheng的博客 8098

Python常见报错及解决方案,建议收藏!

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在Python中,所有代码都是通过正确的空格排列的。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

Trb601012的博客 1344

从零玩转Vitis裸机开发:手把手教你创建、移植与实战优化

✅ Vitis裸机开发全流程✅ 中断系统配置技巧✅ 跨平台移植方法论✅ 性能优化实战经验研究FreeRTOS移植探索AMP(非对称多处理)架构学习使用Vitis Analyzer进行性能分析技术雷达:关注Xilinx最新推出的Vitis Unified IDE,其集成了更强大的调试和分析工具。立即动手实践吧!

QQ_778132974的博客 584

100天精通Python(基础篇)——第4天:数据类型全解析_从基础到转换

数据类型全解析_从基础到转换

努力让自己发光,对的人才能迎着光而来 11万+

Python常见报错及解决方案,建议收藏

索引是项目在数组或列表中的位置,当我们尝试从列表中访问元素或从列表中不存在的索引中访问元组时,就会发生这种异常。对于新手小白想更轻松的学好Python基础,Python爬虫,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,联系我魏X: 762459510 【教程/工具/方法/解疑】例如,有一个包含10个元素的列表,索引在0到9之间,如果试图访问索引10或11或更多的元素,就会产生IndexError。今天,我们就做了一期Python常见报错的分享,拯救你的代码!

资讯发布 591

Verilog HDL 100道面试题及参考答案

在 Verilog HDL 中,参数(parameter)和宏定义(define)都可用于定义常量,但它们存在诸多不同之处。参数(parameter)是模块内部的常量定义,具有局部性。它在模块内部起作用,不同模块可以有同名的参数,且值可以不同。参数通常用于定义模块的一些配置信息,例如数据位宽、延迟时间等。参数的定义和使用是在模块的作用域内进行的,通过参数传递可以方便地对模块进行配置。endmodule在上述代码中,WIDTH是一个参数,用于定义加法器的位宽。通过改变WIDTH。

大模型大数据攻城狮的专栏 1734

Python 常见报错及解决方案,建议收藏!

来源丨网络如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。今天,我们就做了一期Python常见报错的分享,拯救你的代码!01缩进错误(IndentationError)在Python中,所有代码都是通过正确的空格排列的。所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回...

AI科技大本营 451

在 Windows 11 下运行 OminiParse V2,详细教程【含问题解决细节】

OmniParser V2 是微软推出的 GUI 智能体解析工具,可将屏幕截图转换为结构化元素,帮助 LLM 理解和操作界面。它在检测小图标和推理速度上显著提升,延迟降低 60%,并支持多种 LLM。

简简单单Onlinezuozuo 1090

OdomLaserCalibraTool标定工具的使用及踩坑记录

首先欢迎扫码关注我的微信公众号【SLAM及ROS学习笔记】 GitHub地址 GitHub - tzhangZJU/OdomLaserCalibraTool: Extrinsic Calibration of a Odom and 2d Laser 作者博客 2d Laser 和 Odomter 内外参数标定工具原理及使用方法_知行合一-优快云博客 其实只是记录了一下我自己的标定过程,和错误解决方法。其实博客和GitHub中也有提及 Error1 这个是由于.

Studying…… 1757

Python静态类型:看似多余,却能拯救你90%的生产级bug

一、写Python多年,你可能一直在踩同一个坑作为最受欢迎的编程语言之一,Python的“灵活”是无数开发者爱上它的理由——不用声明变量类型,一行代码就能快速实现功能

一个爱折腾的玩家 412

GTK4 入门到实战

本文介绍GTK4作为主流Linux GUI工具包的发展历程与核心特性,涵盖其从GIMP项目诞生的自由软件理念、版本演进及跨平台支持。重点解析GTK4的架构(GDK/GSK/GLib等)、GObject对象系统、信号-回调机制与事件驱动模型,并以C语言为例,结合开发环境搭建与官方示例(gtk4-demo)指导实践,最终通过图片查看器与多标签编辑器项目实现完整应用开发。

OneSea 1396

python无效语法报错的原因,python无效语法解决方法

大家好,本文将围绕python无效语法string怎么办展开说明,python无效语法中一个字母是一个很多人都想弄明白的事情,想搞清楚python无效语法报错的原因需要先了解以下几个事情。如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。今天,我们就做了一期Python常见报错的分享,拯救你的代码!

w666666Wwwwwww的博客 1646

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

下一篇: 30个案例,305页,超有趣的Python学习资料
Python0010
博客等级 码龄5年 452粉丝 4原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值