Python编程新手必看:8大常见错误及优化指南

创始人
2024-12-16 08:48:05
0 次浏览
0 评论

Python教训学生必看

8个常见错误Python初学者制作初学者指南,避免大多数人不告诉他的错误

真值比较

1。

初学者经常在表达式中使用==比较运算符来确定表达式是否为真。
事实上,这是一种不必要的写作形式。
您可以直接检查变量

2字符串集成

在许多初学者教程中;它会告诉你直接使用字符串连接。
+运算符。
一种更优雅的编写方法是使用f-string方法并将变量放在{}中,这种方法使其更清晰、更容易,因为您不需要强制转换非代码变量。

3.运行文件时的open()、close()及相关管理器


下面的代码可读性很好;打开文件;您会看到编辑文件和关闭文件。
但最终您必须始终手动调用close方法来关闭文件。
对于字符串连接,您可以直接使用+运算符。

事实上,Python在运行文件时,是使用关键字来运行文件的,这样你就不用自己做文件的关闭操作了。
管理器会在离开内容之前自动帮助您。

4检查列表是否为空。
初学者常用我们需要确定列表是否为空。
len方法判断列表的长度是否为0,有经验的开发者会告诉你接下来要做什么,更好的方法是直接使用列表

5.从字典中获取键和值

如果你想列出字典中的所有元素并打印出来;需要先获取每个元素的key,然后通过key获取关联的值

值。
初学者通常会分开执行这两个步骤

更方便的方法是字典的items()方法将返回一个包含(key,value)元组的相同对象,

6销毁赋值

元组是Python中的默认数据结构。
当新手将元素分配给元组中的许多不同变量时。
他们通常的做法是从元组中一一给变量赋值。
更好的做法是在一行代码中使用直接销毁。
同时将元组分配给多个不同的变量

7使用for循环迭代列表中的元素时;他们通常的做法是首先获取列表的长度;那么通过元素的下标索引来获取值,其实就是,更专业的方法是直接翻译。
列表本身;每次迭代的值为是列表中的元素

8一个索引用于多个列表

假设我们要向两个列表添加值;通常,假设Python提供了一种更好的方法来形成一个新列表,即从索引0到列表末尾循环每个循环。
它将两个列表对象重新组合成包含对的元组元素列表。

17个新手常见Python运行时错误

初学者在学习Python时,常常会发现错误信息难以理解。
本文介绍了常见的Python运行时错误,以帮助您理解和避免它们。
1)忘记在条件语句(if、elif、else、for、while、class、def等)末尾添加冒号将导致“SyntaxError:validsyntax”错误。
2)如果使用“=”而不是“==”,则会得到“SyntaxError:invalidsyntax”错误,因为“=”用于赋值,“==”用于比较。
3)不正确的缩进格式将导致“IndentationError:Expectanindentedblock”错误、“IndentationError:unindentdoesnotmatchanyouterindentationlevel”错误或“IndentationError:Expectanindentedblock”错误。
确保每次缩进增加仅发生在以“:”结尾的语句之后。
4)我忘记在for循环中调用len()函数,这导致了“TypeError:'list'objectcannotbeinterpretedasaninteger”错误。
通常,您应该使用range()函数返回len值。
5)字符串是不可变的,因此任何更改字符串值的尝试都将导致“TypeError:'str'objectdoesnotsupportitemmasssignment”错误。
6)如果您尝试将非字符串值与字符串连接,您将收到“TypeError:Can’tconvert’int’objecttostimplicitly”错误。
确保所有运算符都是字符串。
7)如果您忘记在字符串的开头和结尾加上引号,您将收到“SyntaxError:EOLwhilescanningstringliteral”错误。
始终确保字符串被完全引用。
8)拼写错误的变量或函数名称将导致“NameError:name'foaba'isnotdefine”错误。
请确保名称完全正确。
9)拼写错误的方法名称会导致“AttributeError:'str'objecthasnoattribute'lower'”错误。
确保方法名称与文档或标准库中的方法名称匹配。
10)超出列表最大索引的引用将导致“IndexError:listindexoutofrange”错误。
确保索引值在列表的长度之内。
11)尝试使用不存在的字典键值会导致“KeyError:'spam'”错误。
确保字典中存在该键。
12)当我尝试使用Python关键字作为变量名时,出现“SyntaxError:validsyntax”错误。
Python关键字不能用作变量名。
13)声明新变量时使用增量运算符会导致“NameError:name'foobar'isnotdefine”错误。
确保初始值有效。
14)在函数中使用局部变量之前,如果存在同名的全局变量,则会出现“UnboundLocalError:localvariable'foobar'Referencedbeforeassignment”错误。
确保首先声明局部变量。
15)当我尝试使用range()创建整数列表时,出现“TypeError:'range'objectdoesnotsupportitemmassignment”错误。
range()返回一个“rangeobject”而不是列表。
16)当使用++或--递增和递减运算符时,“SyntaxError:发生“有效语法”错误。
Python没有这样的运算符。
17)如果您忘记将self参数添加到方法中,您将收到“TypeError:myMethod()takesnoarguments(1given)”错误。
确保您的方法定义包含self参数。

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

如果说编写代码时你最害怕的是什么,那毫无疑问就是bug。
对于刚刚接触编程的新手来说,在享受写代码的成就感时,往往会被各种bug搞得一头雾水。
今天,我们将分享一个有关Python常见错误的问题,以拯救您的代码!

01缩进错误(IndentationError)

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

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

错误示例

a=1b=2ifa更正

a=1b=2ifa02制表符和空格混合(TabError)

此类错误是由于同时使用制表符和空格进行编码而导致的。
Tab键本质上是一个制表符,而不是缩进。
象征。
由于不同文本编辑器中制表符所表示的空格宽度不同,因此建议使用空格。

03语法错误(SyntaxError)

语法错误的原因有以下三种:

无效语法(invalidsyntax)缺少标点符号、中英文符号混合使用、拼写错误、变量名或函数名中使用的关键字。

标识符中存在无效字符(invalidcharacterinidentifier)。
代码中出现无法识别的字符。
检查是否有多余字符或中文字符。

很多情况下,检测到不完整字符串(EOLwhilescanningstringlitera)是因为字符串两边的引号不统一。

错误示例

Print('hello','world')错误原因:逗号是中文逗号

错误信息:SyntaxError:invalidcharacterinidentifier

错误信息:SyntaxError:invalidcharacterinidentifier

结果=(1024+(512*2)/128错误原因:括号不是成对出现的。
错误信息:SyntaxError:unexpectedEOFwhileparsing

ifname=="A"print("hello")

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

错误信息:SyntaxError:invalididsyntax

03变量名错误(NameErro)

变量名错误是最常见的,也是最常见的。
最常遇到的内置错误类型经常出现在Python变量命名中,如果找不到变量,就会引发NameError关于变量命名的规则:

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

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

不要使用Python关键字和函数名作为变量名称,例如print;

变量名称应该简短且具有描述性;

谨慎使用小写字母l和大写字母O,因为它们很容易被误认为是数字1和0。

如果变量名出现错误,可以检查该变量是否被赋值,是否存在大小写差异。
统一或变量名写错,找到后改正

错误示例

message="Hello!"print(mesage)

错误原因:变量名拼写错误。
按摩被错误地拼写为masge。
错误消息:NameError:name'mesage'isnotdefine

05索引错误(IndexError)

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

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

错误示例

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

原因错误:列表a中不存在第四个索引。
列表索引开始从0开始。
错误信息:IndexError:stringindexoutofrange

06键错误(KeyError)

读取时如果字典中的键和值不存在,则会触发KeyError。

错误示例

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

错误原因:键“f”不存在。
错误信息:KeyError:'f'

07TypeError(TypeError)

当程序中使用了不正确或不支持的对象类型时,将会报告错误信息。
抛出这个错误。
如果尝试调用不可调用的对象或迭代不可迭代的标识符,也会引发此错误。

错误示例

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

错误原因:当使用“+”拼成时,必须使用字符串,或使用str()函数将数字转换为字符串。
错误消息:TypeError:canonlyconcatenatestr(not"int")tostr

08属性错误(AttributeError)

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

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

对于初学者来说,代码中频繁出现Bug并不意味着你没有学好。
如果把每一个bug都看成是游戏中的怪物,那么消除bug的过程不就是一个升级的过程吗?

所以,努力吧!消除Bug!

以上就是本次分享的全部内容。
如果想了解更多,请前往公众号:Python编程学习圈,每日分享有用信息

原文:https://juejin.cn/post/7097109537261355038
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...