Python代码书写规范指南


包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

Python代码规范主要遵循PEP 8(Python Enhancement Proposal 8)标准。以下是详细的Python代码书写规范:

在这里插入图片描述

1. 代码布局

  • 缩进:使用4个空格进行缩进(不要使用制表符),续行应该使用悬挂缩进。
# 正确示例
def long_function_name(var_one, var_two, var_three, var_four):
print(var_one)

# 错误示例
def long_function_name(
    var_one, var_two, 
    var_three, var_four):
    print(var_one)
  • 最大行长度:每行不超过79个字符,文档字符串或注释不超过72个字符。
  • 空行:顶层函数和类定义之间用两个空行,类内部方法定义之间用一个空行,函数内逻辑段落之间用一个空行。
class MyClass:
    """类文档字符串"""
    def __init__(self):
        pass

    def method_one(self):
        pass

    def method_two(self):
        pass

def top_level_function():
    pass

2. 导入(Imports)

  • 导入应该分行写,不要写在一行
  • 导入顺序:标准库 → 第三方库 → 本地应用/库
  • 每组导入之间用空行分隔
# 正确示例
import os
import sys

import requests
import django

from mymodule import MyClass
from mypackage import my_function

# 错误示例
import os, sys

3. 空格使用

  • 需要空格的情况:运算符两侧,逗号、分号、冒号后(除非在行尾),函数参数列表中,等号两侧不加空格。
# 正确示例
x = 1
y = 2
long_variable = 3

def complex(real, imag=0.0):
    return magic(r=real, i=imag)

# 错误示例
x=1
y =2
long_variable  = 3
  • 不需要空格的情况
  • 括号、方括号、花括号内部
  • 逗号、分号、冒号前
# 正确示例
spam(ham[1], {eggs: 2})
foo = (0,)

# 错误示例
spam( ham[ 1 ], { eggs: 2 } )
foo = (0, )

4. 注释:文档字符串(Docstrings),使用三重双引号,模块、类、公共方法都应该有文档字符串。

def calculate_area(radius):
    """
    计算圆的面积
    Args:
        radius (float): 圆的半径
    Returns:
        float: 圆的面积
    """
    return 3.14159 * radius ** 2
  • 行内注释:在代码同一行,用至少2个空格与代码分隔
x = x + 1  # 补偿边界
  • 块注释:每行以井号 # 和一个空格开始
# 这是一个块注释
# 可以跨越多行
# 描述下面的代码
result = process_data(data)

5. 命名规范

  • 变量和函数:使用小写字母,单词间用下划线分隔,例如:my_variable, calculate_total。
  • 常量:全部大写,单词间用下划线分隔,例如:MAX_CONNECTIONS, DEFAULT_TIMEOUT
  • 类:使用驼峰命名法(CapWords)例如:MyClass, HttpClient
模块和包
  • 模块名:简短,全小写,可使用下划线
  • 包名:简短,全小写,不建议使用下划线
# 变量和函数
user_count = 10
def get_user_info():

# 常量
MAX_USERS = 100
API_KEY = "secret"

# 类
class UserManager:
    pass

6. 编程建议

  • 比较操作使用is和is not来比较单例(如None),使用==进行值比较。
# 正确示例
if x is None:
    pass
if name == "John":
    pass
# 错误示例
if x == None:
    pass
  • 异常处理:使用明确的异常类型,尽量具体地捕获异常
# 正确示例
try:
    value = int(string_value)
except ValueError as e:
    print(f"无法转换为整数: {e}")

# 错误示例
try:
    value = int(string_value)
except:
    print("发生错误")
  • 布尔值比较:不要用==比较布尔值
# 正确示例
if is_valid:
    pass

# 错误示例
if is_valid == True:
    pass
  • 完整示例:遵循这些规范可以让你的代码更加易读、易维护,并且符合Python社区的通用标准。
#!/usr/bin/env python3
"""
示例模块,演示Python代码规范
"""
import json
import logging
from typing import List, Optional

import requests
from django.conf import settings

logger = logging.getLogger(__name__)

class UserManager:
    """用户管理类"""

    MAX_USERS = 100

    def __init__(self, api_url: str):
        self.api_url = api_url
        self.users = []

    def fetch_users(self) -> List[dict]:
        """
        从API获取用户列表

        Returns:
            List[dict]: 用户列表,每个用户是字典格式
        """
        try:
            response = requests.get(self.api_url, timeout=settings.REQUEST_TIMEOUT)
            response.raise_for_status()
            return response.json()
        except requests.exceptions.RequestException as e:
            logger.error("获取用户数据失败: %s", e)
            return []

    def add_user(self, user_data: dict) -> bool:
        """添加用户"""
        if len(self.users) >= self.MAX_USERS:
            logger.warning("达到最大用户数限制")
            return False

        self.users.append(user_data)
        return True

def calculate_discount(price: float, discount_rate: float = 0.1) -> float:
    """
    计算折扣价格

    Args:
        price: 原价
        discount_rate: 折扣率,默认为0.1(10%)

    Returns:
        折扣后的价格
    """
    if price < 0:
        raise ValueError("价格不能为负数")

    if not 0 <= discount_rate <= 1:
        raise ValueError("折扣率必须在0-1之间")

    discounted_price = price * (1 - discount_rate)
    return round(discounted_price, 2)


def main():
    """主函数"""
    user_manager = UserManager("https://api.example.com/users")
    users = user_manager.fetch_users()

    for user in users:
        print(f"用户: {user['name']}")


if __name__ == "__main__":
    main()

图片

🟢 总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

🟡 文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
🔴包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值