Python 为什么用 # 号作注释符?

Python中常用的注释符号 ‘#‘ 是用于在代码中添加注释的特殊符号 单行注释使用’#‘在一行的末尾进行标记,多行注释使用三个连续的单引号’''或双引号"""将一段代码块注释起来。在Python中,当解释器执行代码时,会忽略掉所有的注释部分,因此注释不会对程序的执行结果产生任何影响。注释在编写代码的过程中非常有用,可以帮助其他人或自己更好地理解代码的含义、逻辑和用法。在编写代码时,合理使用注释可以提高代码的可读性和可维护性。在上面的示例中,第一行是一个单行注释,用于解释注释下面的代码的作用。在上面的示例中,使用三个连续的单引号创建了一个多行注释,对下面的代码块进行了解释。 阅读详情

关于编程语言中的注释,其重要性基本上已为大家所共识。

然而关于注释的规范,这个话题就像我们之前聊过的缩进、终止符和命名方式一样,众口难调。

注释符通常可分为两种,即行注释与块注释(inline/block),它们在不同的编程语言中的符号可谓让人眼花缭乱。

比如行注释符,它至少有以下的 17 种之多(出自维基百科):

其中两个最大的阵营分别是“//”与“#”号:

  • // 注释符:ActionScript, C (C99), C++, C#, D, F#, Go, Java, JavaScript, Kotlin, Object Pascal (Delphi), Objective-C, PHP, Rust, Scala, SASS, Swift, Xojo

  • # 注释符:Bourne shell and other UNIX shells, Cobra, Perl, Python, Ruby, Seed7, Windows PowerShell, PHP, R, Make, Maple, Elixir, Nim

那么,Python 为什么用“#”号作注释符,而不是“//”呢?

这个问题恐怕没办法从解析的效率、符号的辨识度和输入的便利性等方面回答,因为它们基本上没有区别。

我没有找到官方的解释,但是从这些注释符的阵营中,已经不难得出一个较为合理的解释:

  • // 注释符基本上被 C 语言家族所用

  • # 注释符则基本上是被 Shell 和其它脚本语言所用

Python 在创造之初,从 C 和 Shell 语言中借鉴了不少东西,但它是一种脚本语言,因此在注释符这个最为基础的语言要素上,就偏向了脚本语言的传统。

在某些“类脚本语言”中,比如 yaml、conf 和 ini 等格式的配置文件,它们大多也是采用脚本语言的“#”号作为注释符。

所以,Python 行内注释符的选择,大概可以归结为一种历史原因,即借鉴了 Shell 脚本语言的写法。

相比于行注释符的多样,块注释符更加是让人眼花缭乱:

大多数写法是我从未见过的,有些甚至是难以忍受的,槽点太多!

在这份表格里,我们看不到 Python,因为从严格意义上讲,Python 并没有块注释符!

一般而言,我们在连续的每行内容前面加“#”号,达到块注释的效果。块注释被看作是多个行注释。

PEP-8 中是这么建议的:

Each line of a block comment starts with a # and a single space (unless it is indented text inside the comment).

有人曾在 Twitter 上发问,为什么 Python 没有块注释符?

Guido 回复称,可以将多行字符串用作块注释:

Python 的多行字符串用三对单引号或双引号表示,它还可以用作文档字符串(即Documentation Strings,简写docstrings)。

但是,将它当做多行注释符使用,在语义上则有点怪怪的——它表示的是一段字符串,虽然没有赋值给变量,不会生成代码,但是它并非语义上的注释。

由于脚本语言的特性,它允许我们写一段“无根的字符串”,在语法上没有问题,也没有负作用(negative effects),但是,如果把它作为注释使用,这就是一种副作用(side effects)了。

从这点上考虑,我虽然不反对有人把多行字符串写法用作块注释,但是我会更推荐大家使用“#”号作注释。

另外,对于无用的代码,最好的做法就是直接删除,如果后续发现有需要,再回退修改。详细的多行注释尽量放在文档字符串中,这样在核心代码中就会很少出现多行注释的情况了。

对于 Python 的注释符用法,大家是怎么想的呢?欢迎留言交流。

近期十大热门:

每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟爱编程,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。

菜鸟编程大本营

长按2秒,输入:【福利】

点这里,进菜鸟学PythonB站大本营
Python中注释多行的方法 注释是由程序员编写的,不会被解释器执行,因此不会对代码的执行产生任何影响。通过使用三个引号,我们可以在代码中插入多行注释,而无需在每一行前面添加"# "。在上面的示例中,我们使用三个双引号将代码段注释起来。需要注意的是,无论是使用多行字符串注释还是多个单行注释,注释都应该清晰、简洁,并且能够有效地解释代码的含义。除了使用三个引号的多行字符串注释外,我们还可以使用多个单行注释来注释多行代码。在上面的示例中,我们使用了多个单行注释来注释多行代码。每一行代码前面的"# "表示该行代码是被注释掉的,不会被执行。 阅读详情

相关推荐

Python注释使用井号(#)作为注释符号。在Python中,井号后面的内容被视为注释,不会被解释器执行。

当你编写代码时,要养成良好的注释习惯,并确保注释与代码保持同步和准确。这样,你和其他人在阅读和理解代码时就会更加轻松。在上面的代码中,注释被用于提供对代码的解释和说明。注释在编程中起到了重要的作用,它们可以帮助程序员和其他人更好地理解代码。取消代码的执行:如果你想暂时禁用一部分代码,但又不想删除它,你可以使用注释。提醒自己或其他人:有时候你可能想在代码中添加一些提醒,以便你或其他人在以后的工作中注意到它们。提供代码示例:注释可以用于提供示例代码,以帮助其他人理解如何正确使用你的代码。

KkowServer的博客 631

06-注释

注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释) 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用 示例代码如下: 在代码后面增加的单行注释 在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字 但是,需要注意的是,为了保证代码的可读性,注释和代码之间 至少要有 两个空格 示例代码如下: 03. 多行

qq_45500892的博客 427

从零到一:银河麒麟OS下C#跨平台开发的避坑指南

本文详细介绍了在银河麒麟OS下进行C#跨平台开发的完整流程,从开发环境搭建到避坑指南。针对国产操作系统特性,提供了.NET Core安装、开发工具链配置、桌面应用开发及部署优化的实战经验,特别关注ARM架构适配和性能调优,帮助开发者高效应对国产化开发挑战。

weixin_29221753的博客 863

python注释符号怎么打_Python 为什么用 # 号作注释符?

关于编程语言中的注释,其重要性基本上已为大家所共识。然而关于注释的规范,这个话题就像我们之前聊过的缩进、终止符和命名方式一样,众口难调。注释符通常可分为两种,即行注释与块注释(inline/block),它们在不同的编程语言中的符号可谓让人眼花缭乱。比如行注释符,它至少有以下的 17 种之多(出自维基百科):其中两个最大的阵营分别是“//”与“#”号:// 注释符:ActionScript, C ...

weixin_39581719的博客 869

面试篇 - LoRA(Low-Rank Adaptation) 原理

输出示例:trainable params: 262,144 || all params: 6,742,016,000 || trainable%: 0.0039。论文实验显示:零初始化 BB 可使初始损失与预训练模型相差不足0.1%,而非零初始化可能差50%+。若初始 ΔW≠0,模型可能立即偏离预训练学到的知识(如GPT-3突然忘记如何造句)。:如同汽车改装,先保持原厂配置(W),再逐步加装新部件(ΔW),避免直接飙车失控。:大模型的权重变化矩阵 ΔWΔW 通常是低秩的(少数主成分主导变化)。

qq_60245590的博客 1155

构造地貌研究入门:手把手教你用ArcGIS插件CalHypso分析流域地貌形态

本文详细介绍了如何使用ArcGIS插件CalHypso进行流域地貌形态分析,包括工具安装、数据预处理、HI曲线生成及结果解读等关键步骤。通过实战操作,帮助读者掌握面积高程积分(HI)曲线的应用技巧,为构造地貌研究提供量化工具。

weixin_33704234的博客 106

ini 注释_Python 为什么用 # 号作注释符?

关于编程语言中的注释,其重要性基本上已为大家所共识。然而关于注释的规范,这个话题就像我们之前聊过的缩进、终止符和命名方式一样,众口难调。注释符通常可分为两种,即行注释与块注释(inline/block),它们在不同的编程语言中的符号可谓让人眼花缭乱。比如行注释符,它至少有以下的 17 种之多(出自维基百科):其中两个最大的阵营分别是“//”与“#”号:// 注释符:ActionScript, C ...

weixin_39869043的博客 270

Win10无外网热点搭建全指南:纯局域网通信与设备互联

热点并不是只有共享上网一种用途。在很多工程与办公场景中,我们需要的是让手机、笔记本、开发板等设备临时组成一个纯内网,完成文件传输、端口调试或局域网联机,而不需要任何外网出口。Win10笔记本在不连接互联网的状态下,借助系统移动热点或netsh承载网络,完全可以创建一个无外网热点,实现设备间二层互通。其核心在于利用SoftAP建立虚拟无线接入点,并绕开或禁用ICS的NAT转发。掌握这一技术,可在会议、出差、物联网调试等场景中快速搭建临时局域网,无需额外路由器。本文详细梳理三种实现路径、操作步骤及常见故障排查,

weixin_29230773的博客 239

python 注释用什么字符表示_Python 为什么用 # 号作注释符?

原标题:Python 为什么用 # 号作注释符?文章来源: Python猫作者:豌豆花下猫 关于编程语言中的注释,其重要性基本上已为大家所共识。然而关于注释的规范,这个话题就像我们之前聊过的缩进、终止符和命名方式一样,众口难调。注释符通常可分为两种,即行注释与块注释(inline/block),它们在不同的编程语言中的符号可谓让人眼花缭乱。比如行注释符,它至少有以下的 17 种之多(出自维基百科)...

weixin_32479557的博客 998

DisplayPort 1.4数据扰码实战:16bit LFSR并行优化技巧(附Verilog代码)

本文深入探讨了DisplayPort 1.4协议中16bit数据扰码的并行化实现。针对高带宽视频传输需求,文章详细推导了16位LFSR(线性反馈移位寄存器)的单周期16步并行计算公式,并提供了可直接使用的Verilog代码,解决了传统8bit串行处理吞吐量不足的瓶颈,为高速接口设计提供了关键优化技巧。

y4z5a6b7的博客 259

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7374
上一篇: 拼了!玩命学了3个月,吃透了Python技术核心!分享给你,让你今年进个大厂!...
下一篇: 用Python网络爬虫来看看最近电影院都有哪些上映的电影
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值