当前位置: 首页 > news >正文

Python精选200Tips:81-90

No rules, no standard

  • 081 缩进
  • 082 行长度
  • 083 空行
  • 084 空格
  • 085 文档字符串
  • 086 导入顺序
  • 087 命名规范
  • 088 类型提示
  • 089 注释
  • 090 主程序入口

过了这一关,就可以享受用Python创造世界的感觉

运行系统:macOS Sonoma 14.6.1
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-56-1011-2021-3031-40
41-5051-60:函数61-70:类71-80:编程范式及设计模式

PEP 8 是 Python 的官方编码风格指南,旨在提高代码的可读性和一致性。以下是一些常见的 Python 编程格式和最佳实践。

081 缩进

使用 4 个空格进行缩进,不要使用制表符(Tab)

  • PEP 8 明确规定应该使用空格作为缩进方式,而不是制表符。这一规范广泛被 Python 社区接受,遵循这一标准可以提高代码的可读性。
  • -不同的编辑器和 IDE 对制表符的显示宽度可能不同,这可能导致在某些环境中,缩进看起来不一致。使用空格可以确保在不同环境中保持一致的显示效果。
  • -如果代码中同时使用空格和制表符,可能导致缩进的混合。这会使得代码在不同的编辑器或环境中显示不一致,进而导致难以阅读和理解。
  • -Python 依赖缩进来定义代码块。使用混合缩进(空格和制表符结合)可能导致 IndentationError,从而导致代码无法运行。
def my_function():if True:print("Hello, World!")

082 行长度

PEP 8 建议每行不超过 79 个字符,违反这一规范可能使得代码不符合社区标准,影响团队协作和代码审查。对于文档字符串和注释,可允许到 72 个字符。

处理超长行的方法:

  • 换行

使用 Python 的隐式换行(在括号内)或显式换行(使用反斜杠 \)将长行分为多行。

def some_function(a, b):return a + bdef another_function(a, b):return a * bargument1 = 1
argument2 = 2
argument3 = 3
argument4 = 4# 隐式换行, 在外面加一层小括号
result = (some_function(argument1, argument2) +another_function(argument3, argument4))# 显式换行
result1 = some_function(argument1, argument2) + \another_function(argument3, argument4)
  • 简化表达式

考虑将复杂表达式分解成多个简单的步骤,使用中间变量来存储结果。

result_1 = some_function(argument1, argument2) 
result_2 = another_function(argument3, argument4)
result1 = result_1 + result_2

083 空行

  • 在函数和类之间使用两个空行。
  • 在类内部的方法之间使用一个空行。

(1)函数和类之间的空行

在定义的函数和类之间应使用两个空行,以便于区分不同的代码块。

class MyClass:passdef my_function():pass

(2)方法之间的空行

在类内部的方法之间应使用一个空行,以提高可读性。

class MyClass:def method_one(self):passdef method_two(self):pass

(3)代码块内部的空行

在逻辑上相关的代码块之间可以使用空行,以提高可读性,但不应过度使用。空行应帮助分隔不同的逻辑部分。

def process_data(data):# 处理数据cleaned_data = clean(data)# 进行分析analyze(cleaned_data)

(4)注释与代码之间的空行

通常在注释和代码之间留一个空行,以使注释更加突出。

def main():"""主函数,执行程序。"""radius = 5# 计算面积area = calculate_area(radius)print("面积:", area)# 计算体积height = 10volume = calculate_volume(radius, height)print("体积:", volume)

许多Python编辑器会自带格式修正功能,例如PyCharm的重新设置文件格式。

084 空格

(1)运算符周围的空格

在二元运算符(如 +、-、*、/ 等)周围应留有空格,以提高可读性。

# 正确
result = a + b# 错误
result=a+b

(2)函数参数和逗号后的空格

在函数参数列表和列表、元组、字典等中,逗号后应留有空格。

# 正确
my_list = [1, 2, 3, 4]
def my_function(arg1, arg2):pass# 错误
my_list = [1,2,3,4]
def my_function(arg1,arg2):pass

(3)括号内的空格

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [Hive]五、Hive 源码编译
  • Python编码系列—Python项目架构的艺术:最佳实践与实战应用
  • 项目经理学完PMP,为什么还要学PgMP?
  • 【学习笔记】 陈强-机器学习-Python-Ch14 支持向量机
  • 智能交通(一)——MDPI特刊推荐
  • Nginx: TCP建立连接的优化和启用Fast Open功能
  • python测试开发基础---threading
  • 【C++】网络编程之Socket初体验-超详细!
  • ALSC、IPLC、IEPL差异解说
  • ffmpeg视频转切片m3u8并加密videojs播放hls.js播放dplayer播放(弹幕效果)
  • FxFactory 8 for Mac 视觉特效插件包安装
  • CSS解析:层叠、优先级和继承
  • 【LeetCode】01.两数之和
  • 【内网渗透】内网信息收集的十三种基本方式
  • nvidia-cuda-tensorrt-cudnn下载网站
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • es6要点
  • input的行数自动增减
  • Linux中的硬链接与软链接
  • Object.assign方法不能实现深复制
  • PHP 小技巧
  • React-Native - 收藏集 - 掘金
  • Shadow DOM 内部构造及如何构建独立组件
  • tweak 支持第三方库
  • 闭包--闭包作用之保存(一)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 京东美团研发面经
  • 两列自适应布局方案整理
  • 微信小程序填坑清单
  • 小程序 setData 学问多
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 移动端高清、多屏适配方案
  • 昨天1024程序员节,我故意写了个死循环~
  • ###STL(标准模板库)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C语言)fread与fwrite详解
  • (C语言)二分查找 超详细
  • (c语言+数据结构链表)项目:贪吃蛇
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (三十)Flask之wtforms库【剖析源码上篇】
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 8.0 发布到 IIS
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Winform开发笔记(一)
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @DependsOn:解析 Spring 中的依赖关系之艺术