一文搞透常见的Python编码陷阱(上)(分析+案例)

本文深入探讨Python编程中常见的编码陷阱,包括别忘了冒号、重视空行的重要性、保持一致的缩进以及避免C风格的编程习惯。通过分析和案例,帮助开发者理解如何编写更清晰、易读和易维护的Python代码。
摘要由CSDN通过智能技术生成


一个认为一切根源都是“自己不够强”的INTJ

个人主页:用哲学编程-CSDN博客
专栏:每日一题——举一反三
Python编程学习
Python内置函数

Python-3.12.0文档解读

目录

一、别忘了冒号

1. if 语句

2. while 语句

3. for 语句

4. 函数定义

5. 类定义

6. try/except 语句

7. with 语句

总结

二、在交互式提示符中,空行很重要

1. 交互式提示符中的空行

2. 模块文件中的空行

3. 在交互式提示符中粘贴多行代码

4. 使用多行输入编辑器

总结

三、缩进

1. 使用一致的缩进

2. 避免混合使用制表符和空格

3. 设置编辑器以使用空格进行缩进

4. 检查和转换现有代码

5. 引入格式化工具到开发工作流

总结

三、注意C风格

1. if 和 while 语句中的括号

2. 语句结束的分号

3. while 循环中的赋值语句

4. 使用 {} 代码块

5. 采用Pythonic方式编写代码

总结

四、使用for循环而非while或range

1. 简单的 for 循环

2. 替代 while 循环

3. 使用 for 循环替代基于 range 的计数器循环

4. enumerate 函数的使用

5. 避免不必要的嵌套循环

6. 列表推导式和生成器表达式

总结


一、别忘了冒号

在复合语句(如if、while、for等语句)的第一行末尾使用冒号(:)。这一语法规则是Python语言的基本组成部分,确保代码块的正确缩进和逻辑结构。

下面是一些示例和扩展说明,帮助更好地理解和应用这一规则:

1. if 语句

示例:

x = 10
if x > 5:
    print("x is greater than 5")
else:
    print("x is not greater than 5")

扩展说明: 在if语句的条件表达式后面必须加上冒号,这样才能正确地引导接下来的代码块。Python通过缩进来确定代码块的范围,因此if后面的冒号非常关键。

2. while 语句

示例:

count = 0
while count < 5:
    print("Count is:", count)
    count += 1

扩展说明: while语句用于在条件为True时重复执行代码块。这里的冒号同样起到了标识代码块起始的作用。

3. for 语句

示例:

for i in range(5):
    print("Iteration number:", i)

扩展说明: 在for循环中,冒号后面的缩进部分表示循环体。Python会依次将i设置为range(5)中的每一个值,并执行循环体中的代码。

4. 函数定义

示例:

def greet(name):
    print("Hello, " + name + "!")

扩展说明: 函数定义同样需要在参数列表后面使用冒号。这样可以明确函数体的开始。

5. 类定义

示例:

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(self.name + " says woof!")

扩展说明: 类定义和方法定义都需要在声明后面加上冒号,以清晰地分隔出类体和方法体。

6. try/except 语句

示例:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("You can't divide by zero!")

扩展说明: 在异常处理结构中,try和except后面也需要使用冒号,以确保代码块的正确性和可读性。

7. with 语句

示例:

 
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

扩展说明: with语句用于简化资源管理。在这里,冒号后面跟着的是代码块,确保文件操作的上下文管理。

总结

在编写Python代码时,使用冒号(:)来标识复合语句的代码块是一个基本且重要的习惯。虽然一开始可能会忘记,但随着练习和使用,它会成为一种无意识的编程习惯。同时,正确的缩进和使用冒号将帮助你编写出更清晰、易读和易维护的代码。


二、在交互式提示符中,空行很重要

在Python的交互式提示符(通常是REPL,Read-Eval-Print Loop)中,空行的处理方式不同于在模块文件中的处理方式。当你在交互式提示符中输入代码时,空行被用作一种信号,表示已经完成了当前的复合语句。这对于理解和正确使用交互式编程环境非常重要。

1. 交互式提示符中的空行

示例:

>>> if 5 > 3:
...     print("5 is greater than 3")
... 
5 is greater than 3

扩展说明: 在上面的示例中,输入完if语句和其块内的代码后,必须按两次回车键(空行),以告诉REPL你已经完成了整个复合语句。REPL随后执行并输出结果。

2. 模块文件中的空行

当你在模块文件中编写代码时,空行是用来分隔代码块、函数、类等,以提高代码的可读性。在这种情况下,空行不会影响代码的运行。

示例:

def greet(name):
    print(f"Hello, {name}!")

def farewell(name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用哲学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值