Python——代码格式

news2025/3/18 15:29:16

代码格式

良好的代码格式可以提升代码的可读性。和其他语言不同,Python 代码的格式是 Python 语法的组成之一,不符合 Python 代码无法正常运行。

注释

注释是代码中穿插的辅佐性质的文字,用于标识代码的含义和功能,可以提高程序的可读性。程序运行时 Python 解释器会忽略注释。Python 程序中的注释分为单行注释和多行注释。

单行注释

单行注释以“#” 开头,用于说明当前行或之后代码的功能。单行注释既可以单独占一行,也可以位于标识的代码后面,和表示代码同占一行。请看实例:

print("Hello Python!")                    # 单行注释,打印 Hello Python!

为了保证注释的可读性,Python 官方建议:“#”  后面先添加一个空格,再添加相应的说明文字,如果单行注释和代码同占一行,注释和代码之间至少有两个空格。

多行注释

在 Python中,多行字符串(由三个单引号 ''' 或三个双引号 """ 包围的文本块)在某些情况下可以被视为一种实现多行注释的技巧。多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来

多行注释是由 3 对双引号包裹的语句,主要用于说明函数或类的功能,因此多行注释也被称为说明文档。Python 内置函数 print() 中的多行注释,请看实例:

 单引号(' ' ')
#!/usr/bin/python3 
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号 
这是多行注释,用三个单引号
'''
print("Hello, Python!")
多引号(" " ")
#!/usr/bin/python3 
"""
This is a comment
written in
more than just one line
"""
print("Hello, Python!")

拓展说明

在 Python 中,多行注释是由三个单引号 ''' 或三个双引号 """ 来定义的,而且这种注释方式并不能嵌套使用。当你开始一个多行注释块时,Python 会一直将后续的行都当作注释,直到遇到另一组三个单引号或三个双引号。

嵌套多行注释会导致语法错误。例如,下面的示例是不合法的:

'''
这是外部的多行注释
可以包含一些描述性的内容

    '''
    这是尝试嵌套的多行注释
    会导致语法错误
    '''
'''

在这个例子中,内部的三个单引号并没有被正确识别为多行注释的结束,而是被解释为普通的字符串。这将导致代码结构不正确,最终可能导致语法错误。

如果你需要在注释中包含嵌套结构,推荐使用单行注释(以#开头)而不是多行注释。

单行注释可以嵌套在多行注释中,而且不会引起语法错误。

'''
这是外部的多行注释
可以包含一些描述性的内容

# 这是内部的单行注释
# 可以嵌套在多行注释中
'''

这样的结构是合法的,并且通常能够满足文档化和注释的需求。

通过 _ _doc_ _ 属性可以获取 Python 对象的说明文档。以获取 print() 函数的说明文档为例

print(print.__doc__)

 运行代码,结果如下:

print("Hello world")
print(print.__doc__)

Hello world
Prints the values to a stream, or to sys.stdout by default.

  sep
    string inserted between values, default a space.
  end
    string appended after the last value, default a newline.
  file
    a file-like object (stream); defaults to the current sys.stdout.
  flush
    whether to forcibly flush the stream.

缩进

Python 代码使用“缩进”(即一行代码之前的空白区域)确定代码之间的逻辑关系和层次关系,Python 代码的缩进可以通过 “Tab” 键或空格键控制。输入空格是 Python 3 首选的缩进方法,一般使用 4 个空格表示一级缩进,Python 3 不允许混合使用 “Tab” 键和空格键。请看实例:

if True:
    print ("true")
else:
    print ("true")

代码缩进量的不同会导致代码语义的改变,Python 语言要求同一代码块的每行代码必须具有相同的缩进量。程序中不允许出现无意义或不规范的缩进,否则运行时会产生错误,请看实例:

if Ture:
   print ("Answer")
   print ("True")
else:
   print ("Answer")
 print ("Ealse")      # 缩进不一致,会导致运行错误

 上面最后一行代码的缩进量不符合规范,程序在运行后会出现错误,请看实例:

File "D:\语言编程\Python\fist_study\测试.py", line 6
    print ("False")      # 缩进不一致,会导致运行错误
                                        ^
IndentationError: unindent does not match any outer indentation level

语句换行

Python 官方建议每行代码不超过 79 个字符,如果代码过长应该换行。Python 会将圆括号、中括号和大括号中的进行隐式连接,可以根据这个特点在语句外测添加一对圆括号,实现过长语句的换行显示,请看实例:

string = ("Python 是一种面向对象的、解释型的计算机程序设计语言,"
             "由 Guido van Rossum 于 1989 年底发明。"
             "Python 第一个公开发行版发行于 1991 年,"
             "其源代码同样遵循 GPL (GUN General Public License) 协议。")

需要注意的是,原本由圆括号、中括号和大括号包裹的语句在换行时不需要另行添加圆括号,请看实例:

total = ['item_one', 'item_two',
                   'item_three','item_four','item_five'

注:有不当之处,请批评指正!谢谢~

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

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

相关文章

Datawhale coze-ai-assistant:Task 1 了解 AI 工作流 + Coze的介绍

学习网址:Datawhale-学用 AI,从此开始 工作流(Workflow)是指完成一项任务或目标时,按照特定顺序进行的一系列活动或步骤。它强调在计算机应用环境下的自动化,通过将复杂的任务拆分成多个简单的步骤,每一步都…

深度学习 Deep Learning 第3章 概率论与信息论

第三章 概率与信息论 概述 本章介绍了概率论和信息论的基本概念及其在人工智能和机器学习中的应用。概率论为处理不确定性提供了数学框架,使我们能够量化不确定性和推导新的不确定陈述。信息论则进一步帮助我们量化概率分布中的不确定性。在人工智能中,…

GStreamer —— 2.15、Windows下Qt加载GStreamer库后运行 - “播放教程 1:Playbin 使用“(附:完整源码)

运行效果 介绍 我们已经使用了这个元素,它能够构建一个完整的播放管道,而无需做太多工作。 本教程介绍如何进一步自定义,以防其默认值不适合我们的特定需求。将学习: • 如何确定文件包含多少个流,以及如何切换 其中。…

MYsql—1

1.mysql的安装 在windows下安装mysql,直接官网搜索即可:http://www.mysql.com/,自己找想要的版本进行download,官网长这样 安装路径需要是英文路径,设置默认即可,若安装执行内容时报错,则AltCt…

位运算(基础算法)

按位与AND( & ) 只有当两个位都为1时,结果才为1,否则为0。结果不会变大 按位或 OR( | ) 只有当两个位中有一个为1时,结果才为1,否则为0。结果不会变小 按位异或 XOR ( ^ ) 只…

硬件地址反序?用位操作为LED灯序“纠偏”。反转二进制数即可解决

特别有意思,LED的灯序与其硬件地址刚好相反,没办法直接通过加1实现二进制进位的亮灯操作,查了一些资料说用数组和switch实现,觉得太麻烦了,思索良久,就想到了反转二进制数解决这个问题。 reverse_bits( )是…

图解AUTOSAR_CP_BSWMulticoreLibrary

AUTOSAR BSW 多核库详解 AUTOSAR基础软件多核操作库详细解析 目录 架构概述 1.1. 组件架构 1.2. API结构 1.3. 错误处理流程详细设计 2.1. 基础数据类型 2.2. 接口说明 2.3. 错误处理机制使用指南 3.1. 配置说明 3.2. 典型应用场景 3.3. 注意事项 1. 架构概述 1.1. 组件架构 …

热key探测技术架构设计与实践

参考: 得物热点探测技术架构设计与实践 Redis数据倾斜与JD开源hotkey源码分析揭秘 京东热点检测 HotKey 学习笔记 hotkey: 京东App后台中间件,毫秒级探测热点数据,毫秒级推送至服务器集群内存,大幅降低热key对数据层查询压力 …

【微服务】java中http调用组件深入实战详解

目录 一、前言 二、http调用概述 2.1 什么是http调用 2.1.1 http调用步骤 2.2 HTTP调用特点 2.3 HTTP调用应用场景 三、微服务场景下http调用概述 3.1 微服务开发中http调用场景 3.2 微服务组件中http的应用 四、常用的http调用组件 4.1 java中常用的http组件介绍 4…

app.config.globalProperties

目录 一:基础使用 1、简介 2、使用 3、打印结果: 二:封装 1、创建一个.ts文件(utils/msg.ts) 2、在main.ts中全局注册 3、在页面中使用 4、打印结果 一:基础使用 1、简介 app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性&…

Leetcode做题记录----3

1474、删除链表M个节点之后的N个节点 思路: 1、两个循环解决问题 第一个循环移动M个位置,第二个循环确定移动N个位置后的,然后将M位置的节点的next指向,N位置后的节点即可 2、注意边界条件和判空处理 代码实现: pub…

React(二):JSX语法解析+综合案例

事件绑定 this绑定方式 问题:在事件执行后,需获取当前类的对象中相关属性,此时需要this——当打印时,发现this为undefined,这又是为啥? 假设有一个btnClick函数,但它并不是我们主动调用的,而是…

Gitee重新远程连接仓库(Linux)

Gitee重新远程连接仓库(Linux) 因为虚拟机重新安装了一回,所以需要重新和远程仓库连接,在网上找了很久没有找到相关操作,自己实操成功,记录下本博客,帮助有需要的人 确保新虚拟机安装Git 在新虚…

Vitis HLS中的Array Partition与Array Reshape详解

Vitis HLS中的Array Partition与Array Reshape详解 引言 在高层次综合(HLS)设计中,数组是最常用的数据结构之一,但默认情况下,HLS会将数组映射到单个BRAM块,这会限制并行访问能力,成为性能瓶颈。为了克服这一限制&am…

Centos离线安装openssl

文章目录 Centos离线安装openssl1. openssl是什么?2. openssl下载地址3. openssl-devel安装4. 安装结果验证5. 版本查看 Centos离线安装openssl 1. openssl是什么? OpenSSL 是一个开源的、跨平台的 加密工具库 和 命令行工具集,广泛用于实现…

protobuf安装

安装 github官方链接 https://github.com/protocolbuffers/protobuf/ 以protobuf21为例 https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip windows 解压好文件夹后,使用cmake,vs,qt creator等工具打开该项目,进行编译,编译需…

《基于超高频RFID的图书馆管理系统的设计与实现》开题报告

一、研究背景与意义 1.研究背景 随着信息化时代的到来,运用计算机科学技术实现图书馆的管理工作已成为优势。更加科学地管理图书馆会大大提高工作效率。我国的图书管理体系发展经历了三个阶段:传统图书管理模式、现代图书管理模式以及基于无线射频识别&…

小程序渲染之谜:如何解决“加载中...”不消失的 Bug(glass-easel)

🎉 小程序渲染之谜:如何解决“加载中…”不消失的 Bug 🎉 引言 在小程序开发中,渲染问题总能让人抓狂。😫 这次,我遇到了一个奇怪的 bug:产品详情页的内容已经正常显示,但页面却一…

网络原理之HTTPS(如果想知道网络原理中有关HTTPS的知识,那么只看这一篇就足够了!)

前言:随着互联网安全问题日益严重,HTTPS已成为保障数据传输安全的标准协议,通过加密技术和身份验证,HTTPS有效防止数据窃取、篡改和中间人攻击,确保通信双方的安全和信任。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要…

五子棋小游戏-简单开发版

一、需求分析 开发一个基于 Pygame 库的五子棋小游戏,允许两名玩家在棋盘上轮流落子,当有一方达成五子连珠时游戏结束,显示获胜信息,并提供退出游戏和重新开始游戏的操作选项。 1.棋盘显示 : 显示一个 15x15 的五子棋…