Python 常见的17个错误分析

未解决 | xlwings 报错 pywintypes.com_error: (-2147024703, ‘OLE error 0x800700c1‘, None, None) 今天在学习 xlwings 库时,运行一个很简单的读取 .xlsx 文件的代码,结果报错如下: Traceback (most recent call last): File "C:/Users/th1nker/PycharmProjects/orders/test/ch3.2.2.py", line 6, in <module> app = xw.App(visible=False, add_book=False) # 创建App对象 File "C:\Users\th1nk 阅读详情

点击上方“编程派”,选择设为“设为星标”

优质文章,第一时间送达!


来源:开源中国   

链接:https://www.oschina.net/question/89964_62779

对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了常见的17个错误,希望能够帮助到大家

1、

忘记在if,for,def,elif,else,class等声明末尾加 :

会导致“SyntaxError :invalid syntax”如下:

if spam == 42
  print('Hello!')

2、

使用= 而不是 ==

也会导致“SyntaxError: invalid syntax”

= 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:

if spam = 42:
  print('Hello!')

3、

错误的使用缩进量

导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”

记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:

print('Hello!')
  print('Howdy!')

或者:

if spam == 42:
  print('Hello!')
print('Howdy!')

4、

在 for 循环语句中忘记调用 len()

导致“TypeError: 'list' object cannot be interpreted as an integer”

通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。

该错误发生在如下代码中:

spam = ['cat', 'dog', 'mouse']
for i in range(spam):
  print(spam[i])

5、

尝试修改string的值

导致“TypeError: 'str' object does not support item assignment”

string是一种不可变的数据类型,该错误发生在如下代码中:

spam = 'I have a pet cat.'
spam[13] = 'r'
print(spam)

而正确做法是:

spam = 'I have a pet cat.'
spam = spam[:13] + 'r' + spam[14:]
print(spam)

6、

尝试连接非字符串值与字符串

导致 “TypeError: Can't convert 'int' object to str implicitly”

该错误发生在如下代码中:

numEggs = 12
print('I have ' + numEggs + ' eggs.')

而正确做法是:

numEggs = 12
print('I have ' + str(numEggs) + ' eggs.')

numEggs = 12
print('I have %s eggs.' % (numEggs))

7、

在字符串首尾忘记加引号

导致“SyntaxError: EOL while scanning string literal”

该错误发生在如下代码中:

print(Hello!')

print('Hello!)

myName = 'Al'
print('My name is ' + myName + . How are you?')

8、

变量或者函数名拼写错误

导致“NameError: name 'fooba' is not defined”

该错误发生在如下代码中:

foobar = 'Al'
print('My name is ' + fooba)

spam = ruond(4.2)

spam = Round(4.2)

9、

方法名拼写错误

导致 “AttributeError: 'str' object has no attribute 'lowerr'”

该错误发生在如下代码中:

spam = 'THIS IS IN LOWERCASE.'
spam = spam.lowerr()

10、

引用超过list最大索引

导致“IndexError: list index out of range”

该错误发生在如下代码中:

spam = ['cat', 'dog', 'mouse']
print(spam[6])

11、

使用不存在的字典键值

导致“KeyError:‘spam’”

该错误发生在如下代码中:

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}
print('The name of my pet zebra is ' + spam['zebra'])

12、

尝试使用Python关键字作为变量名

导致“SyntaxError:invalid syntax”

Python关键不能用作变量名,该错误发生在如下代码中:

class = 'algebra'

Python3的关键字有:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield

13、

在一个定义新变量中使用增值操作符

导致“NameError: name 'foobar' is not defined”

不要在声明变量时使用0或者空字符串作为初始值,这样使用自增操作符的一句spam += 1等于spam = spam + 1,这意味着spam需要指定一个有效的初始值。

该错误发生在如下代码中:

spam = 0
spam += 42
eggs += 42

14、

在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)

导致“UnboundLocalError: local variable 'foobar' referenced before assignment”

在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的,使用规则是:如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。

这意味着你不能在定义它之前把它当全局变量在函数中使用。

该错误发生在如下代码中:

someVar = 42
def myFunction():
  print(someVar)
  someVar = 100
myFunction()

15、

尝试使用 range()创建整数列表

导致“TypeError: 'range' object does not support item assignment”

有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值。

该错误发生在如下代码中:

spam = range(10)
spam[4] = -1

正确写法:

spam = list(range(10))
spam[4] = -1

(注意:在 Python 2 中 spam = range(10) 是能行的,因为在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就会产生以上错误)

16、

不存在 ++ 或者 -- 自增自减操作符。

导致“SyntaxError: invalid syntax”

如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。

该错误发生在如下代码中:

spam = 1
spam++

正确写法:

spam = 1
spam += 1

17、

忘记为方法的第一个参数添加self参数

导致“TypeError: myMethod() takes no arguments (1 given)”

该错误发生在如下代码中:

class Foo():
  def myMethod():
      print('Hello!')
a = Foo()
a.myMethod()

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版
回复关键词「m」,立即获取Python精选优质文章合集
回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~
题图:pexels,CC0 授权。

好文章,我在看
CMake、Make、MinGw、Clang、Llvm、GCC、MSVC的区别 除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具;的缩写,MinGw是windows版本的gcc集合。并不仅是一个 C/C++ 编译器,而是一套。是微软开发的VC运行时库,3、Make和CMake是。 阅读详情

相关推荐

从理论到实践:Zemax驱动下的离轴三反光学系统全流程构建

本文详细阐述了从理论推导到软件实现的离轴三反光学系统全流程设计方法。文章首先分析了离轴三反系统在空间遥感等领域的优势,然后手把手指导如何基于像差理论计算共轴三反的初始结构参数,包括曲率半径与圆锥系数。最后,重点介绍了在Zemax中完成从共轴建模、视场离轴设置到优化与性能评估的完整实战步骤,为光学工程师提供了宝贵的经验与避坑指南。

weixin_29205061的博客 239

python基础

for循环   迭代对象内部顺序取值,无元素时终止循环,迭代对象内部值不会消失 字典dict  一个可以存储具有一系列映射关系的数据结构,即为字典表{‘key(键):’ value(值)} 2个不准:不准改变键、键不许重复 2个注意:只能使用不可变类型作为键、通常不使用数字(int,float)作为键 创建空字典:exp = dict()     exp={} 查看类型:print(type(exp)) 创建非空字典:exp = {‘a’:‘面包’,‘b’=‘牛奶’} 添加内容:exp[‘c’] = ‘香

94小菜 386

人工智能训练师技能等级认定四级技能考核试卷-样题1

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总分100分,考试时间150分钟。试卷涵盖数据处理、模型训练准备及系统维护等核心技能:1)垃圾分类数据集规范与处理(30分),要求评估数据格式并编写Python处理代码;2)学生成绩数据集分析(20分),涉及数据预处理、可视化及相关性分析;3)数据标注审核(10分),重点审核标注准确性;4)智能数据服务系统维护与优化(40分),包括安全帽数据集的项目创建、数据处理及平台协作。考核强调Python编程、数据处理平台操作及AI工作流程的实践能力。

weixin_42221934的博客 441

python操作系统接口错误_代码又双叕错误,python17个常见失误不仅新手会犯,你也可能会...

对初学者来说,想要弄懂Python的某些错误信息还是有困难的,下面罗列了一些常见的运行时错误:1.忘记在if,elif,else,for,while,class,def语句末尾添加冒号(:),从而导致:“SyntaxError:invalidsyntax”错误错误发生在如下类似代码里:ifspam==42print('Hello!')2.使用=号,而不是==号,从而导致“SyntaxError:i...

weixin_34479122的博客 365

STM32H745xI双核芯片SMPS/LDO配置误区:从复位失败到精准排查的实战复盘

本文详细分析了STM32H745xI双核芯片在SMPS/LDO配置中的常见误区,特别是复位失败问题的排查过程。通过对比参考板与故障板的波形数据,揭示了电感选型不当导致的电源稳定性问题,并提供了硬件设计检查清单和调试技巧,帮助开发者避免类似陷阱。

weixin_42531588的博客 265

(27)FPGA实现AD7768接口(六)

AD7768/AD7768-4 为8通道和4通道24位同步采样模数转换器(ADC)。通过可选的功耗模式和数字滤波器选项可重新配置AD7768/AD7768-4以适应多种应用,如工业输入/输出模块、仪器仪表、音频测试、控制回路和状态监控。FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。

m0_46498597的博客 998

Syntax Error: Error: Loading PostCSS Plugin failed: Cannot find module ‘autoprefixer‘

文章目录1、出现的错误:1、代码展示2、图片展示问题:2、 问题解决过程1、在 package.json文件中2、main.js中添加一句话3、下面内容注释掉 1、出现的错误: 1、代码展示 E:\librarycat\admin>npm run serve > app@0.1.0 serve E:\softwork\Practice_Yg\daiding\librarycat\admin > vue-cli-service serve INFO Starting develop

优快云_Admin0的博客 1万+

【数字孪生与仿真技术】06:航天器系统建模与验证全流程实战:从多学科建模到数字孪生(附完整代码与工业案例)

摘要:航天器系统开发面临多学科耦合强、验证流程复杂、可靠性要求极高的挑战。本文基于MATLAB/Simulink平台,系统阐述航天器从多域建模、动力系统开发到任务验证的全流程技术框架。内容涵盖Modelica统一建模规范、光伏-电池联合供电系统仿真、基于模型的需求追溯方法、蒙特卡洛可靠性分析及硬件在环测试等核心技术,并结合James Webb太空望远镜电力系统案例,展示工业级应用实践。文中提供完整的Simulink模型代码、仿真结果及流程图,最后探讨数字孪生与AI增强技术在航天器在轨运维中的未来应用。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1373

python中if错误-Python 常见的17个错误分析

原标题:Python 常见的17个错误分析来源:开源中国链接:https://www.oschina.net/question/89964_62779对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了常见的17个错误,希望能够帮助到大家1、忘记在if,for,def,...

weixin_37988176的博客 1413

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1738

Halcon 色彩标定:RGB空间下实现白平衡与CCM矩阵合成静态HDR图像

摘要 本文介绍了一种基于Halcon的色彩校正方法,结合白平衡与灰轴约束最小二乘法实现精准颜色还原。方法分为三步:1)自动定位色卡区域并提取灰阶块计算白平衡增益;2)通过前三列色块建立测量值与标准值的映射关系;3)引入灰轴约束条件求解色彩校正矩阵(CCM),确保中性灰区域不偏色。算法采用中位数计算白平衡增益以提高鲁棒性,并通过旋转校正处理色卡倾斜问题。实验表明,该方法能有效消除相机采集的系统色偏,适用于颜色测量、表面检测等机器视觉场景。文末提供了完整代码实现。

LIN943168247的博客 406

syntaxerror是什么错误_Python 常见的17个错误分析

对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了常见的17个错误,希望能够帮助到大家分享一些我学习Python用到的视频&电子书资料。【个人分享】今年最新最全的Python学习资料汇总!!!​mp.weixin.qq.com1、忘记在if,for,def,e...

weixin_39685459的博客 1724

083、多帧降噪(MFR)与VST算法:低照度场景下的信噪比提升与鬼影抑制

本文深入探讨了多帧降噪(MFR)和VST算法在低照度场景中的应用与优化。作者从实际项目案例出发,指出单帧降噪的局限性,详细分析了MFR的核心原理与工程实现中的关键环节,包括帧对齐、帧选择、融合策略和鬼影抑制等技术要点。文章特别强调VST变换对噪声均匀化的重要性,并分享了实际开发中的调试经验与参数优化技巧,如"三明治"调试法和性能平衡策略。最后指出,优秀的MFR方案需要在信噪比提升、鬼影抑制和纹理保留之间找到场景化的平衡点,建议开发者通过真实场景测试验证算法效果。全文既有理论分析,又包含丰富的实战经验和技术细

zzfmlxs的博客 123

Python常见的17个错误分析

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。 1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在类似如下代码中: if spam == 42 pr...

zt772612939的博客 321

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python常见的格式错误_Python常见的17个错误分析

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)该错误将发生在类似如下代码中:if spam == 42print('Hell...

weixin_35610224的博客 2609

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

17个Python 常见错误的分析,你都遇到过哪些

导致 “TypeError: Can’t convert ‘int’ object to str implicitly”导致 “AttributeError: ‘str’ object has no attribute ‘lowerr’”④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)⑤ Python学习路线图(告别不入流的学习)⑤ Python学习路线图(告别不入流的学习)

2401_83974087的博客 996
上一篇: 分享一个Python API,可获超详细的全球新冠疫情数据
下一篇: 用 Python 换个姿势「模拟登录」
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值