5

十个Python初学者常犯的错误

 2 years ago
source link: https://developer.51cto.com/article/714604.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

十个Python初学者常犯的错误-51CTO.COM

十个Python初学者常犯的错误
作者:刘志军 2022-07-22 15:55:32

下面10个Python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够Pythonic,因为Python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性。

下面10个Python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够Pythonic,因为Python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性。

07ef30302d69ddef53a196f88ea26ba07457a8.jpg

1.  真值比较

初学者经常在if语句中使用==比较符来判断表达式是否为真值。

图片

这是一种冗余的写法,其实你可以直接对变量进行检查。

图片

2 . 字符串连接

很多初学者教程中,他们会告诉你字符串连接直接使用+操作符。

656806f76be7dcc483a906882272dc0dbe93fc.png

一种更优雅的写法是使用f-string方式,将变量放置在{} 中,该方法能让代码清晰易读,因为你不需要针对非字符串变量做强制转换了。

120a20a20279412e4d5758d0fb3c657a1350b5.png

3. open()、close()与上下文管理器

操作文件时,下面的代码看起来可读性很好,打开文件、编辑文件、关闭文件。不过在最后你总要是手动去调用close方法来关闭文件。

29beba748710442e87e005d0d1dc134fc3fe85.png

其实python提供了内置的上下文管理器,操作文件时,使用with关键字操作文件,这样就不需要自己处理文件的关闭操作了,在离开上下文前管理器会自动帮你关闭文件。

1447423304f333c3ab620334ecdfe4b27478b5.png

4. 检查列表是否为空

假设你要基于列表做某些操作,操作前需要判断列表是否为空,初学者通常会使用len方法判断列表的长度是否为0,并做后续操作。

f69b5cd46fdc0f92aee9004c7cf14e69cb9d44.png

有经验的开发者会告诉你,一种更好的方式是直接用列表本身来判断列表是否为空

59c4de87262772ec7361872a3c27f44ee281d1.png

5. 字典中获取key和value

如果你要列出并打印字典中所有元素,首先你要拿到每个元素的key,然后通过key来获取对应的value。初学者通常将两个步骤分开处理。

d9a754a492dbbaa7c78545a6225c5313f93b1d.png

更便捷的方法是,字典的items()方法会返回一个由(key,value)元组构成的迭代对象,

图片

6. 解构赋值

元组在python中是一种固定长度的数据结构,新手在将元组中的元素赋值给多个不同的变量时,他们通常的做法是从元组中逐个赋值给变量

图片

更好的做法是直接在一行代码中用解构的方式,将元组同时赋值给多个不同的变量。

图片

7. 列表迭代

对于新手来说,用for循环迭代列表中的元素时,他们通常的做法是先拿到列表的长度,然后通过元素的下标索引来获取值。

图片

其实更专业的做法就是直接迭代列表本身,每次迭代出来的值就是列表中的元素

图片

8.  一个索引用于多个列表

假设你想将两个列表中的值做加操作,通常,你会从索引0开始循环直到列表的结尾,每次循环将列表项做加操作组成新的列表

图片

python提供了一个更好的方法zip(),它将两个列表对象重新组合成一个成对出现的tuple元素列表

图片

9. 海象操作符

在python3.8之前,当一个变量作用在if判断语句上时,要先给他赋值然后再处理

图片

python3.8的海象操作符,让你的代码减少重复,看起来更简洁,你可以将变量的赋值和if判断一行处理。

图片

10. 不必要的索引

如果有一个文本列表,你想随下标索引一起打印,可以你单独定义一个数字变量每次迭代的时候递增1

图片

一个更为专业的做法是直接用enumerate()方法,每次迭代时,他会返回元素的下标索引和元素本身

891c94c25827ceb619036988a2ee60a916c34d.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK