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)括号内的空格

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ceph中pg与pool关系

在Ceph中,PG(Placement Group)和Pool是非常重要的概念,它们在Ceph的存储架构中扮演着关键角色。理解这些概念有助于更好地管理和优化Ceph集群。下面详细介绍这两个概念及其相互关系。 Pool(存储池) 定义&am…

FFmpeg的日志系统(ubuntu 环境)

1. 新建.c文件 vim ffmpeg_log.c2. 输入文本 #include<stdio.h> #include<libavutil/log.h> int main() {av_log_set_level(AV_LOG_DEBUG);av_log(NULL,AV_LOG_INFO,"hello world");return 0; }当log level < AV_LOG_DEBUG 都可以印出来 #define A…

【重学 MySQL】十二、SQL 语言的规则与规范

【重学 MySQL】十二、SQL 语言的规则与规范 基本规则注释语法规则命名规则基本命名规则具体命名规范其他注意事项 数据导入指令 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;的规则与规范是确保SQL语句能够正确执行、提高代码可读性和可维…

【2024数模国赛赛题思路公开】国赛C题第三套思路丨无偿自提

C题参考思路 C题是一道优化问题&#xff0c;目的是根据题目所给的种植限制条件以及附件数据建立目标条件优化模型&#xff0c;优化种植策略&#xff0c;有利于方便田间管理&#xff0c;提高生产效益&#xff0c;减少各种不确定因素可能造成的种植风险。整个题目最重要的问题在…

Java框架第四课(对Spring的补充Spring web)

目录 一.Spring web的认识 (1)Spring Web概念 (2)Spring web的特点 (3)Springweb运行的流程 (4)Springweb运行的流程图 二.搭建Spring web 三.自定义处理器类搭建 (1)处理器类配置 (2)处理器类接受请求 (3)获得请求数据 四.拦截器 (1)关于拦截器&#xff1a; (2)拦截器的…

13、Flink SQL 的 时间属性 介绍

时间属性 a)概述 Flink 可以基于几种不同的 时间 概念来处理数据。 处理时间 指的是执行具体操作时的机器时间(例如 Java的 System.currentTimeMillis()) )事件时间 指的是数据本身携带的时间,这个时间是在事件产生时的时间。摄入时间 指的是数据进入 Flink 的时间;在系…

Axure中继器动态数据图表制作

在Axure RP中&#xff0c;中继器&#xff08;Repeater&#xff09;是一个非常强大的工具&#xff0c;它允许设计者动态地展示和交互数据&#xff0c;进而创建各种复杂的数据可视化图表&#xff0c;如柱状图、条形图、堆叠图、散点图和对比图。以下将详细介绍如何使用中继器来设…

【TS高频面试题】interface与type的区别

参考文章 一、基本概念 1. type&#xff08;类型别名&#xff09; 用来给一个类型起新名字&#xff0c;使用 type 创建类型别名。 2. interface&#xff08;接口&#xff09; 专门用于定义对象的结构&#xff08;比如属性和方法&#xff09; 二、相同点 &#xff08;1&a…

持续集成与持续部署(CI/CD)的深入探讨

在现代软件开发中&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已成为不可或缺的实践。这些方法旨在加快软件交付的速度&#xff0c;同时提高软件的质量和稳定性。通过CI/CD&#xff0c;开发团队可以频繁地将代码更改集成到主分支&…

调用火山云的语音生成TTS和语音识别STT

首先需要去火山云的控制台开通TTS和STT服务语音技术 (volcengine.com) 火山这里都提供了免费的额度可以使用 我这里是使用了java来调用API 目前我还了解到阿里的开源项目SenseVoice&#xff08;STT&#xff09;和CosyVoice(TTS)非常的不错&#xff0c;但是都是使用Python开发…

prometheus删除指定metrics下收集的值

Prometheus 删除指定 Metric 官方文档&#xff1a; ​ - https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis Prometheus 的管理 API 接口&#xff0c;官方到现在一共提供了三个接口&#xff0c;对应的分别是快照功能、数据删除功能、数据清理功能…

js 创建 React 项目

起因(目的): js 很久没写了。 react js 之前粗略看过, 最近又需要用到, 继续学习&#xff0c; 记录 积累。 1. 新建 React 项目 的几种方法。 官方建议使用 next 来创建 React 项目&#xff0c; 但是我觉得太复杂了。以后再看看. npx create-next-applatest # !!! 不建议使…

算法练习题14——leetcode84柱形图中最大的矩形(单调栈)

题目描述&#xff1a; 解题思路&#xff1a; 要解决这个问题&#xff0c;我们需要找到每个柱子可以扩展的最大左右边界&#xff0c;然后计算以每个柱子为高度的最大矩形面积。 具体步骤如下&#xff1a; 计算每个柱子左侧最近的比当前柱子矮的位置&#xff1a; 使用一个单调…

java后端保存的本地图片通过ip+端口直接访问

直接上代码吧 package com.ydx.emms.datapro.controller;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.…

Qt中Q_PROPERTY的作用,以及必要性和使用场景

作为一个跨平台框架&#xff0c;Qt没有依赖那些非标准的编译器特性&#xff0c;比如&#xff1a;__property或者[property]。Qt的解决方案适用于Qt支持平台下的任何标准C编译器。它基于元对象系统&#xff08;Meta Object Sytstem&#xff09;&#xff0c;该系统还提供了信号槽…

linux curl命令介绍以及使用

文章目录 curl 简介curl 的安装基本用法发送GET请求将响应内容保存到文件显示请求的头部信息发送POST请求上传文件携带请求头处理重定向通过代理发送请求下载文件指定请求的超时时间 高级用法模拟浏览器行为保持会话&#xff08;Cookie&#xff09;验证HTTPS请求总结 在Linux中…

函数式接口实现策略模式

函数式接口实现策略模式 1.案例背景 我们在日常开发中&#xff0c;大多会写if、else if、else 这样的代码&#xff0c;但条件太多时&#xff0c;往往嵌套无数层if else,阅读性很差&#xff0c;比如如下案例&#xff0c;统计学生的数学课程的成绩&#xff1a; 90-100分&#…

idea添加本地环境执行模版

用Flink的环境执行时&#xff0c;因为最后会打包放服务器&#xff0c;所以有些jar包将不会打包上传&#xff0c;这些jar包用<scope>provided</scope>标记 所以这些jar包在本地运行时也会不提供&#xff0c;为了程序在本地能跑&#xff0c;我们每次执行是需手动添加…

使用matlab的热门问题

MATLAB广泛应用于科学计算、数据分析、信号处理、图像处理、机器学习等多个领域&#xff0c;因此热门问题也涵盖了这些方面。以下是一些可能被认为当前最热门的MATLAB问题&#xff1a; 深度学习与神经网络&#xff1a; 如何使用MATLAB的深度学习工具箱&#xff08;Deep Learni…

vue3 el-menu 菜单Maximum recursive updates exceeded 报错

vue3 用el-menu实现管理后台左侧菜单&#xff0c;报Uncaught (in promise) Maximum recursive updates exceeded in component <ElMenu>. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possib…