python程序格式_三、Python程序规范

2023-11-16

三、python程序规范

python的设计哲学(大道至简):优雅、明确、简洁

在交互式解释器中输入``import this`会出现python之禅

Python之禅 by Tim Peters

优美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

当存在多种可能,不要尝试去猜测

而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

3.1缩进

python采用严格的“缩进”来表明程序的格式框架,用来表示代码直接的包含和层次关系。

1个缩进=4个空格(不建议用Tab,更不能空格与Tab混用)

在不同的编辑器里Tab的长度可能不一致,所以在一个编辑器里用Tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。

众所周知,Tab在ASCII码中,编码是9,而空格是32。这也就是说,当我们按下一个Tab的时候,即使它看起来就是8个空格(或者4个空格,不同的环境下,Tab可能显示的效果不同),对于电脑来说,却是完全不一样的东西。这也意味着,对于用字符来描述过程的代码来说,极有可能会是决定性的差异。

关于代码规范

3.2 注释

注释的作用:使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性

3.2.1单行注释(行注释)

以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用

示例代码如下:

# 这是第一个单行注释

print("hello python")

为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字

在代码后面增加的单行注释

在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字

但是,需要注意的是,为了保证代码的可读性,注释和代码之间 至少要有 两个空格

示例代码如下:

print("hello python") # 输出 `hello python`

3.2.2 多行注释(块注释)

如果希望编写的 注释信息很多,一行无法显示,就可以使用多行注释

要在 Python 程序中使用多行注释,可以用连续的 三个 引号(单引号和双引号都可以)

示例代码如下:

"""

这是一个多行注释

在多行注释之间,可以写很多很多的内容……

"""

print("hello python")

3.3 源文件编码

python核心发布版本中的代码都是以UTF-8格式编码,如果编码文件中包含中文,只需在源文件开头加入\# -*- coding: utf-8 -*-即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python程序格式_三、Python程序规范 的相关文章

  • 基于 Web 端的人脸识别身份验证

    效果展示 人脸识别效果图 前言 近些年来 随着生物识别技术的逐渐成熟 基于深度学习的人脸识别技术取得了突破性进展 准确率显著提高 现阶段 人脸识别身份验证作为非常重要的身份验证方式 已被广泛的应用于诸多行业和领域 例如 支付宝付款 刷脸签到
  • 主流的深度学习优化方法(SGD,SGDM,Adagrad,RMSProp,Adam)

    文章目录 0 前言 1 SGD 2 SGD with momentum SGDM 3 Adagrad 4 RMSProp root mean square prop 5 Adam 0 前言 介绍主流的深度学习优化方法 SGD SGD wit
  • 登陆远程服务器的Tomcat管理页面

    在远程服务器上安装了一个tomcat8 5 配置好用户后重新启动tomcat 发现 8080可以访问 登录管理页面报403访问受限 详细信息如下 You are not authorized to view this page By def
  • C语言代码写直角三角形

    include
  • 关于BUCK-BOOST电路的负压生成

    在一些实际应用中 我们时常会用到需要提供负压的场合 针对负压的设计 小白之前就讲述过一种方式 即采用charge pump的方法 然而呢 由于其带负载能力的不足 往往在一些设计中不被采用 同时 小白之前还见到过呦采用变压器隔离绕组反接的方式
  • 斐波那契数列递归算法和非递归算法以及其时间复杂度分析

    1 在学习数据结构这门课的过程中 发现斐波那契数列的递归算法以及非递归算法 以及其时间复杂度分析是一个小难点 所以特别总结一下 斐波那契数列的表达式 Fibonacci数列简介 F 1 1 F 2 1 F n F n 1 F n 2 n g
  • 配置Flutter开发环境

    安装 Flutter SDK 下载好 Flutter SDK 压缩包 flutter windows 3 0 3 stable zip 将 Flutter SDK 压缩包 解压到一个目录下 设置环境变量 FLUTTER STORAGE BA
  • Lua : 流程控制也没啥,if/嵌套仅需知

    目录 1 if else end 语法 2 if elseif else end 语法 3 if的嵌套 Lua中流程控制 使用if 和if的嵌套就好 当然goto也可以用于流程控制 其实我在想 C C 中如此好用的switch 语法 Lua
  • Java研发京东4面:事务隔离+乐观锁+HashMap+秒杀设计+微服务(面试真题)

    在朋友圈看到一个以前的同事这些天去京东面试了 就让他整理了一下面试官问了些他什么 然后就有了这篇文章 这篇文章主要介绍了 Java岗 京东的四次面试 面试题全为面试真题 一面 基础面 约1小时 二面 问数据库较多 三面 综合面 约一个小时
  • 6.STM32中断优先级管理

    1 中断 stm32的芯片通常有90多个以上的中断 具有16级可编程的中断优先级 2 中断管理方法 1 首先对STM32中断进行分组 有组0 4 同时对每一个中断设置一个抢占优先级和一个响应优先级值 分组配置是在寄存器SCB gt AIRC
  • 【Python】工程与包(2)

    创建工程及第三方包管理 New environment using 新建的项目里有一个venv virtualenv 文件夹 专门存放本项目所依赖的第三方模块 Existing interpreter 表示新建的项目所依赖的第三方模块是存放
  • 推荐工具url

    https www processon com diagrams 很好的web画图工具 https www tapd cn letters from top nav worktable v2 产品 研发 测试工具
  • uboot环境变量的讲解

    1 环境变量的作用域和全局变量相同 环境变量的生命周期为一旦设置好环境变量并保存好后 下次开机还存在 而全局变量在关机后就灭亡了 下次开机产生了一个新的全局变量 2 环境变量如何参与程序运行 1 环境变量有2份 分别在Flash和DDR中
  • hadoop3.3.1单机版环境搭建详细流程记录

    1 在centos7中创建必要的目录 2 上传JDK安装包到tools目录 3 解压JDK到 opt server 目录 tar zxvf jdk 8u221 linux x64 tar gz C opt server 4 vim 未找到命
  • 视音频编解码技术零基础学习方法

    一直想把视音频编解码技术做一个简单的总结 可是苦于时间不充裕 一直没能完成 今天有着很大的空闲 终于可以总结一个有关视音频技术的入门教程 可以方便更多的人学习从零开始学习视音频技术 需要注意的是 本文所说的视音频技术 指的是理论层面的视音频
  • Python-Jenkins 在 Jenkins 中的应用

    Author rab Python 版本 3 9 Jenkins 版本 2 409 官方文档 https python jenkins readthedocs io en latest 目录 前言 一 案例 1 1 管理 Jenkins V
  • Java远程调试(Remote Debug)方法

    Java远程调试的原理是两个VM之间通过debug协议进行通信 然后以达到远程调试的目的 两者之间可以通过socket进行通信 首先被debug程序的虚拟机在启动时要开启debug模式 启动debug监听程序 jdwp是Java Debug
  • 简易的打包器--webpack打包原理

    手写一个简单的类似webpack的打包器 打包流程说明 定义依赖分析函数 通过读取文件内容 分析得到该文件导入的依赖项 code gt AST gt 得到导入声明 记录导入声明中的依赖项路径 gt AST gt code gt 返回记录当前
  • 扫描局域网内所有电脑的端口

    扫描局域网内所有电脑端口可以使用工具如Nmap来完成 Nmap是一个开源的网络探测工具 可以用来扫描端口 识别操作系统 检测服务和插件等 使用Nmap扫描局域网内所有电脑端口的命令如下 nmap sP 192 168 1 0 24 其中19

随机推荐

  • kvm直通sata_PVE 中 对 KVM虚拟机的USB设备设置为直通

    Proxmox支持将USB设备直接映射给KVM虚拟机使用 也就是所谓的USB Passthrough 配置步骤可以参考Proxmox wiki上的有关说明 具体地址是https pve proxmox com wiki USB physic
  • Java随机数

    1 指定数字范围 package com jiayou peis official account biz utils import java util Random public class Test public static void
  • Python模拟登陆万能法-微博

    Python模拟登陆让不少人伤透脑筋 今天奉上一种万能登陆方法 你无须精通HTML 甚至也无须精通Python 但却能让你成功的进行模拟登陆 本文讲的是登陆所有网站的一种方法 并不局限于微博与知乎 仅用其作为例子来讲解 用到的库有 sele
  • ubuntu使用教程与常用命令

    ubuntu使用教程 一 Ubuntu简介 Ubuntu 乌班图 是一个基于Debian的以桌面应用为主的Linux操作系统 据说其名称来自非洲南部祖鲁语或科萨语的 ubuntu 一词 意思是 人性 我的存在是因为大家的存在 是非洲传统的一
  • pdf.js详细解析

    pdf js可以实现在html下直接浏览pdf文档 是一款开源的pdf文档读取解析插件 pdf js主要包含两个库文件 一个pdf js和一个pdf worker js 一个负责API解析 一个负责核心解析 pdf js可通过pdf文件的地
  • 神奇的tmux

    一 Tmux 是什么 1 1 会话与进程 命令行的典型使用方式是 打开一个终端窗口 terminal window 以下简称 窗口 在里面输入命令 用户与计算机的这种临时的交互 称为一次 会话 session 会话的一个重要特点是 窗口与其
  • STM32+4G模块实战项目(连接阿里云物联网平台+OTA升级):(一)初识硬件

    STM32 4G模块实战项目 OTA升级 构思占坑中ing 3天一章 请耐心等待 STM32 4G模块实战项目 连接阿里云物联网平台 OTA升级 一 初识硬件 STM32 4G模块实战项目 连接阿里云物联网平台 OTA升级 二 stm32通
  • @RefreshScope刷新配置文件原理

    一 前置知识 在Spring中bean的作用域 scope 常用的有两种 单例 singleton 原型 prototype Bean的Scope影响了Bean的管理方式 例如创建Scope singleton的Bean时 IOC会将这些B
  • android Http通信(访问web server)

    下面将3种实现方式 以下代码有的来源于传智播客 有的自己琢磨的 在这感谢传智播客 本人开发使用的android studio 在最新版本中 android不在支持HttpClient 所以 要使用HttpClient要加载库文件 1 com
  • 单向散列函数(Hash)

    0 Hash函数的性质 常用Hash函数 MD5 128bit SHA 1 160bit 等 1 使用Hash 函数进行完整性验证的模型 2 使用Hash函数进行口令验证 1 3 使用Hash函数进行口令验证 2 4 使用Hash解决数字签
  • 剑指offer(简单)

    目录 数组中重复的数字 替换空格 从尾到头打印链表 用两个栈实现队列 斐波那契数列 青蛙跳台阶问题 旋转数组的最小数字 二进制中的1的个数 打印从1到最大的n位数 删除链表的节点 调整数组顺序使奇数位于偶数前面 链表中倒数第k个节点 反转链
  • 史上最详细的maven仓库详解

    写在前面 我是 沸羊羊 昵称来自于姓名的缩写 fyy 之前呕心沥血经营的博客因手残意外注销 现经营此账号 本人是个小菜 正向着全栈工程师的方向努力着 文章可能并不高产 也很基础 但每写一篇都在用心总结 请大佬勿喷 如果您对编程有兴趣 请关注
  • 新增、修改入参方法

    一 HttpServletRequest req 获取参数值value 1 Postman 在params逐个参数赋值 PostMapping xxx String id req getParameter id 后端通过如上的方法一个个去获
  • 一文全览各种ES查询在Java中的实现

    点击关注公众号 互联网架构师 后台回复 2T获取2TB学习资源 上一篇 Alibaba开源内网高并发编程手册 pdf ElasticSearch多种查询操作 前言 词条查询 等值查询 term 多值查询 terms 范围查询 range 前
  • Dubbo+Zookeeper+Spring mvc+Nginx 集群负载均衡 详细demo

    原文链接 https blog csdn net xianghui12333 article details 71172342 处女博客 不知道规则怎么写 直接入主题吧 很多人刚接触分布式 集群负载均衡时都觉得高深莫测 难度有点大 其实起码
  • 让你的手机号码变成空号!没试过

    输入 21 13800000000 再按拨号键 注意13800000000这是个空号 原理就是 21 是无条件转移所有来电 13800000000是个空号 如果13800000000的号不起作用你就随便输入个号码什么的 自然别人打进来您的号
  • r730xd服务器重装系统后风扇声音大,重装Win10系统后散热风扇噪音特别大的处理方法...

    有的小伙伴为了解决一些问题 便给电脑重装系统了win10系统 但是在重装后 却又出现了新的问题 在重装完win10后散热风扇噪音响声特别大 非常影响电脑的使用心情 那么遇到这种情况应该怎么办呢 下面小编就给大家分享一下重装Win10系统后散
  • [从零学习汇编语言] - BX寄存器与loop指令

    文章目录 前言 一 Bx寄存器与 偏移地址 二 loop指令与jmp指令 1 jmp指令 2 loop指令 三 一些奇奇怪怪的注意点 1 汇编源程序的数字问题 2 Debug和Masm的区别 1 mov ax 0 问题 3 段前缀 四 课后
  • Postern中配置和使用Socks5代理指南

    在Postern中配置和使用Socks5代理 可以为你的爬虫项目提供更灵活 更可靠的网络连接 本文将向你分享如何在Postern中配置和使用Socks5代理的方法 解决可能遇到的问题 配置和使用Socks5代理的步骤 1 了解Socks代理
  • python程序格式_三、Python程序规范

    三 python程序规范 python的设计哲学 大道至简 优雅 明确 简洁 在交互式解释器中输入 import this 会出现python之禅 Python之禅 by Tim Peters 优美胜于丑陋 Python 以编写优美的代码为