Python注释的使用方法(详解)
本文的目录:
零、时光宝盒
如果家里的小孩或认识的人常常感觉冷,或者突然感觉很热,直冒汗,爱睡觉或睡觉时间过长,有异常感觉,类似感觉被鬼弄,听到有异常的说话声音但看不到人,哭泣,跟你们倾诉这些异常但你们不相信他(她),自言自语,睡觉抽筋,害怕锁门,情绪波动大等等异常情况,请不要随便因为自己不能理解或旁人的闲话轻易就判定她们疯了。
她们这种状况不是疯了,也不是得什么奇怪的病导致,你们理解不了,但事实上她们正经历一些常人无法理解的事情,不是被真鬼弄,是被坏人通过高科技手段欺负!你们帮不了也请相信她们,将健康人当疯子对待治疗是很残忍的事情。如果你们没有在身边守护陪伴安慰,她们真的很有可能被坏人逼疯。
家人的理解和陪伴是她们度过难关,不发生无法挽回意外的关键。
成年人也会发生同样事情,请理解守护好自己的家人,守护好你们的朋友。不要把那些可怜无助的人当笑话般嘲笑,如果你们遇到同等的事情,表现未必如她们。
逆境清醒
2024.8.21
![]() | Python注释是在代码中添加的解释性文字,用于帮助理解代码的功能和逻辑。注释在代码运行时会被忽略,仅供阅读和理解代码使用。 注释是一个良好的编程习惯,可以提高代码的可读性和可维护性。通过注释,其他开发者可以更容易地理解和修改代码。 |
一、注释规则
在 Python3 中,注释不会影响程序的执行,但是会使代码更易于阅读和理解。
在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和中文注释。
注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。
很多时候,在IDLE开发环境中,可以通过菜单中的Format→Comment Out Region选项,或者UnComment Region选项,将选中的代码注释掉,取消添加的单行注释。
Comments 注释规范:
- 与代码相矛盾的注释比没有注释还糟,当代码更改时,优先更新对应的注释!
- 注释应该是完整的句子。如果一个注释是一个短语或句子,它的第一个单词应该大写,除非它是以小写字母开头的标识符(永远不要改变标识符的大小写!)。
- 如果注释很短,结尾的句号可以省略。块注释一般由完整句子的一个或多个段落组成,并且每句话结束有个句号。
- 在句尾结束的时候应该使用两个空格。
- 当用英文书写时,遵循Strunk and White (译注:《Strunk and White, The Elements of Style》)的书写风格。
- 在非英语国家的Python程序员,请使用英文写注释,除非你120%的确信你的代码不会被使用其他语言的人阅读。
PEP 8中,对python注释规范如下:
与代码相矛盾的注释比没有注释更糟糕。当代码发生变化时,始终优先保持注释的最新状态!
评论应该是完整的句子。第一个单词应该大写,除非它是一个以小写字母开头的标识符(永远不要改变标识符的大小写!)。
阻止评论通常由一个或多个由完整句子构建的段落组成,每个句子以句号结尾。
在多句评论中,除了最后一句之后,你应该在句末句号后使用一两个空格。
确保你的评论清晰明了,易于其他使用你所写语言的人理解。
来自非英语国家的Python程序员:请用英语写你的评论,除非你有120%的把握,不说你语言的人永远不会读到你的代码。
块注释通常应用于后面的一些(或所有)代码,并缩进到与该代码相同的级别。块注释的每一行都以#和一个空格开头(除非注释内是缩进文本)。
块注释内的段落由包含单个#的行分隔。
行内注释
谨慎使用内联注释。
内联注释是与语句位于同一行的注释。内联注释应与语句至少隔开两个空格。它们应该以一个#和一个空格开头。
内联注释是不必要的,如果它们陈述了显而易见的内容,实际上会分散注意力。不要这样做:
x=x+1#增量x
但有时,这是有用的:
x=x+1#边界补偿
二、单行注释
单行注释:
在Python中,单行注释以"#"符号开头,后面跟随要注释的文字。在代码中的一行中使用#符号来添加单行注释。#后的内容都作为注释的内容而被Python编译器忽略,并不会在执行结果中体现出来。
单行注释使用方法:
# 注释内容
单行注释可以放在要注释代码的前一行,也可以放在要注释代码的右侧。
Inline Comments 行内注释:
- 有节制地使用行内注释。
- 行内注释是与代码语句同行的注释。行内注释和代码至少要有两个空格分隔。
- 注释由#和一个空格开始。
下面的两种注释形式都是正确的。
1.1、单行注释第一种形式
单行注释第一种形式,放在要注释代码的前一行。
如果单行文字采用#开头,其后就是注释内容。一般采用这种注释来描述此后一段程序的功能。
print("逆境清醒——从0开始学python__注释");
# 被泼过太冷的雨滴和雪花,更坚持微笑要暖得像太阳
print("#")
输出结果:
逆境清醒——从0开始学python__注释
#
print("逆境清醒——从0开始学python__注释")
# 输入要求:身高输入单位为m(米),保留2位小数。如1.80
xb=input("请输入您的性别:")
height=float(input("请输入您的性别和身高:"))
print(xb,height)
输出结果:
1.2、单行注释第二种形式
单行注释第二种形式,放在要注释代码的右侧。
采用#开头,并写在一行语句或表达式的后面的注释,一般用来说明该行语句或表达式的作用。
print("逆境清醒——从0开始学python__注释")
xb=input("请输入您的性别:")
height=float(input("请输入您的性别和身高:"))# 输入要求:身高输入单位为m(米),保留2位小数。如1.80
print(xb,height)
输出结果:
注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。
例如,下面的代码注释是错误的:
height=float(#按要求的格式输入体重值 input("请输入您的体重值:"))
三、多行注释(块注释)
在Python中,并没有一个单独的多行注释标记,而是将包含在一对三引号('''……''')或者("""……""")之间,并且不属于任何语句的内容认为是注释。对于这样的代码,解释器将忽略。由于这样的代码可以分为多行编写,所以也作为多行注释。
多行注释以三个引号(''')或三个双引号(""")开始和结束,可以注释多行文字。
多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能修改日志等信息。例如:
'''
@ 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
博主链接:https://blog.csdn.net/weixin_69553582/
版权所有:逆境清醒
修改时间:2024年8月21日
'''
多行注释(块注释)语法格式如下:
'''
注释内容1
注释内容2
……
'''或者
"""
注释内容1
注释内容2
……
"""
Block Comments 块注释(多行注释):
- 块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。
- 块注释的每一行开头使用一个#和一个空格(除非块注释内部缩进文本)。
- 块注释内部的段落通过只有一个#的空行分隔。
- 块注释(即多行注释),一般用于注释内容较多的情形。虽然块注释也可采用多行用#开头的注释来表示,但用3个单引号(' ' ')或者3个双引号(" " ")将注释进行标识会更自然。
在Python中,三引号('''……''')或者("""……""")是字符串定界符。所以,如果三引号作为语句的一部分出现,那么就不是注释,而是字符串,要注意区分。
例如,以下代码即为多行注释:
'''
这是一个多行注释:
山河远阔,人间烟火,无一是你,无一不是你。
词语欣赏:
在千山万水的风景里,在日出日落的生活里,你都不在身边,但是每一处风景中都能看到你的影子,因为你在我心里。
'''
以下的代码为字符串:
print('''山河远阔,人间烟火,无一是你,无一不是你。''')
print("""山河远阔,人间烟火,无一是你,无一不是你。""")
输出结果:
山河远阔,人间烟火,无一是你,无一不是你。
山河远阔,人间烟火,无一是你,无一不是你。
3.1、多行注释第一种形式
'''
第一行注释内容
第二行注释内容
第三行注释内容
……
'''
'''
上堂开示颂
黄蘖禅师〔唐代〕
尘劳迥脱事非常,紧把绳头做一场。
不经一番寒彻骨,怎得梅花扑鼻香。
'''
3.2、多行注释第二种形式
"""
第一行注释内容
第二行注释内容
第三行注释内容
……
"""
"""
上堂开示颂
黄蘖禅师〔唐代〕
尘劳迥脱事非常,紧把绳头做一场。
不经一番寒彻骨,怎得梅花扑鼻香。
"""
四、中文注释
Python中,有一种特殊的中文注释。该注释的出现主要是为了解决Python 2.x中不支持直接写中文的问题。但是为了规范页面的编码,也为了方便其他人及时了解文件所用的编码,通常都建议在文件开始加上中文注释。
中文注释语法格式如下:
# -*- coding:编码 -*-
或者
#coding=编码
在上面的语法中,编码为文件所使用的字符编码类型,
如果采用UTF-8编码,则设置为utf-8;
如果采用GBK,则设置为gbk或cp936。
例如,指定编码为UTF-8,可以使用下面的中文注释。
# -*- coding:utf-8 -*-
或
# coding:utf-8
或
#coding=utf-8
编码出错乱码,中文显示乱码问题:
如果代码中有汉字中文,运行的时候python报错,出现python中无法正常输入中文,乱码等情况:
编译提示:SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x*** in position 0: ...
出错原因:主要是由于编码的问题引起的。
解决办法:
受开发系统和环境不同影响,解决办法会有所不同,但一般按以下办法处理就能解决,有需要者请自行尝试适合自己系统的解决办法:(记住,下面的方法不需要全部添加到python文件中,选择其中一项或两项尝试,能解决问题即可)
在你的python文件(.py)文件第一行
1、开头加入
# coding=utf-8
# coding=utf-8
2、或者开头加入
#-*- coding: UTF-8 -*-
#-*- coding: UTF-8 -*-
3、或者开头加入
#!usr/bin/env python3
# -*- coding:utf-8 -*-
#!usr/bin/env python3
# -*- coding:utf-8 -*-
4、或者开头加上
# -*-coding:GBK -*-
# -*-coding:GBK -*-
5、或者开头加上
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
6、改变标准输出print()的默认编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
平时开发python时注意:
1、如果你用pycharm编译书写python代码,pycharm默认是会自动保存为UTF-8格式的,如果你无意中修改过,请在pycharm工作界面右键—File-Encoding–选择UTF-8编码----reload-----reload anyway。如果还是不行,试一下路径改为全英文。
pycharm设置参考链接:https://blog.csdn.net/qq_35091353/article/details/108236018
2、如果你用其他编译书写代码工具,请点击
文档>>设置文件编码>>Unicode>>Unicode(UTF-8)
3、如果你用visual studio 编译书写python代码,
visual studio 2022下python编程,报错:SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte
解决办法:
把Visual studio的文件保存编码改为UTF-8:
---->Unicode(UTF-8带签名)-代码页65001
visual studio其他版本在文件菜单选项里选“高级保存选项”
---->Unicode(UTF-8带签名)-代码页65001
设置工程字符集为utf-8,选择工程----右键----属性----加上字符集编码
Visual Studio Community 2022 - UTF-8 编解码器问题 #6784,可参考阅读:
https://github.com/microsoft/PTVS/issues/6784
五、拓展说明
5.1、嵌套结构
在 Python 中,多行注释是由三个单引号 ''' 或三个双引号 """ 来定义的,这种注释方式并不能嵌套使用。
当开始一个多行注释块时,Python 会一直将后续的行都当作注释,直到遇到另一组三个单引号或三个双引号。
嵌套多行注释会导致语法错误。
例如,下面的示例是不合法的:
'''
这里是正常多行注释第一行注释内容
这里是正常多行注释第二行注释内容
'''
这里如果嵌套多行注释
会导致语法错误
'''
'''
这个例子中,内部的三个单引号并没有被正确识别为多行注释的结束,而是被解释为普通的字符串。
这将导致代码结构不正确,最终导致语法错误。
如果你需要在注释中包含嵌套结构,
推荐使用单行注释(以#开头)而不是多行注释。
单行注释可以嵌套在多行注释中,而且不会引起语法错误。
例如:
'''
尘劳迥脱事非常,
紧把绳头做一场。
不经一番寒彻骨,
怎得梅花扑鼻香。
# 诗词名:上堂开示颂
# 作者:黄蘖禅师〔唐代〕
'''
这样的结构是合法的。
str="""逆境清醒:
最好的友谊,
是各自忙碌无法联系,
但又彼此惦念。
"""
print(str)
输出结果为:
逆境清醒:
最好的友谊,
是各自忙碌无法联系,
但又彼此惦念。
5.2、函数的注释
输出函数的注释实例
def Comments():
'''逆境清醒'''
pass
print(Comments.__doc__)
输出结果为:
逆境清醒
当函数中有语句的时候,是无法输出函数的注释的:
def Comments():
date=20240821
'''逆境清醒'''
pass
print(Comments.__doc__)
输出结果为:None
如果要输出函数中的注释,注释应该放在函数的第一行:
def Comments():
'''逆境清醒'''
date=20240821
pass
print(Comments.__doc__)
输出结果为:逆境清醒
五、放松一下,一起来欣赏一下大能们有趣的注释(转自网络)
1. 只有上帝知道
//我写这一行的时候,只有上帝和我知道我在写什么
//现在,只有上帝知道了
2. 相隔时空的diss
//somedev1 - 6/7/02 添加对登录屏幕的暂时追踪功能
//somedev2 - 5/22/07 暂时个屁
(仿佛看到两个程序员相隔时空的diss)
3. 喝大了
//喝大了,等会再修bug
4. 有魔法,别碰
//有魔法,别碰。
5. 开森吗?
//开森地调bug吧,傻x
(隔着屏幕都想打他一顿)
6. 糊弄过去算了
/*
*你可能觉得自己看懂下面的代码了,
*然而你并没有,相信我。
*糊弄过去算了,不然你会好多个晚上睡不着觉,
*嘴里骂着这段注释,觉得自己很聪明,
*真能“优化”下面的代码。
*现在关上文件,去玩点别的吧。
*/
7. 你懂的
//这代码真是烂透了,你懂的,我也懂的。
8. 先往下看
//先往下看,后面再喊我傻X。
9. 好怕怕
//我也不确定我们到底需不需要这个,但是删了又特害怕。
10. 到底要怎样?
#要想理解递归,移步本文件底部
然后翻到文件底部:
#要想理解递归,移步本文件顶部
11. 本人对本代码概不负责
//本人对本代码概不负责,
//他们让我写的,非本人自愿。
12. 我偏不
//就不给你们写注释
//这代码写得这么费劲
//所以你们读着也得费劲
13. 没有错,不好用就不是我写的
//如果这段代码跑的通,那就是Paul DiLascia写的。要是跑不通,
//那我就不知道是谁写的了
14. 没毛病
//这公式没毛病,你要不信自己去算
15. 就问你服不服
//要是你想被炒鱿鱼,那就删吧
16. 好好活着
//如果将来读到这行代码,我会穿越回来,然后一死以谢天下。
17. 谨以此代码献给我的老婆
//谨以此代码和我所有的工作献给我的老婆Darlene,
//这段代码要是放出去,
//她就得照顾我还有三个孩子了。
(潜台词是自己代码写的太烂,会丢了工作或者造成公司倒闭)
18. 我读书少,别骗我
//别删这行注释啊,删了程序就崩了
19. 仇恨绵绵不绝
放个大招,在 GitHub 上有这么一个脚本,前面好好的,很正常,到了中间作者忽然用注释对 Adobe PSD 来了一大段的疯狂吐槽:
//到了这个份儿上,我得给你说说这个 Adobe PSD 格式。
//PSD 可不是个好格式,它甚至都是不个坏格式,叫它坏格式都是
//对 PCX 和 JPEG 这些坏格式的一种侮辱。不,PSD 是一种烂到家的格式。
//我忙活这段代码好几个星期了,我对 PSD 日渐增长的仇恨,
//如同数百万个太阳燃烧成的怒火,绵绵不绝。
//如果有两种不同的做事方法,PSD 会两个都试一遍。
//然后再以正常人无法想象的方式想出三个甚至三个以上的方法,
//把它们也都试一遍。PSD 把“前后矛盾”上升成了一门艺术。比方说,
//为啥它忽然就决定这些特定组块对齐 4 比特,而且这种对齐方式
//不应该包含在尺寸内?其它地方的组块要么没对齐,
//要么对齐方式包含在尺寸内。这里就没包含在内。
//这三种方式任何一种都是可以的,智商正常的格式都会只用一种,
//我们的 PSD 当然是三种都用了,而且不止三种。
//从 PSD 文件里拿到数据,就跟从你那 58 岁生日时被一条抓狂的淡水鲨鱼干掉的
//上岁数的怪叔叔家的阁楼上想找出点好东西一样。
//用鲨鱼这个比方不是我要表达的重点啊,但是我现在正在苦思冥想,
//那些小题大做搞出这种文件格式的人该有怎样搞笑的人生啊。
//之前吧,我想找到这种文件格式的最新说明书。
//为此,我必须向他们申请许可,他们才考虑送我
//这本神圣的“秘籍”。整个过程还得向他们传真
//一些文件的复印件,或者可能还得签点秘密协议。
//我只能觉得,他们把这个流程搞这么复杂就是因为
//他们造出了这么恶心的东西,心里有愧。我是自然不会
//按他们的意思走这个流程的。但是假如我真的
//这么做的话,我会把说明书的每一页都打印出来,
//一把火给它烧了。要是能有超能力,
//我会把说明书的所有复印件都收集过来,
//放到宇宙飞船上,直接发配到太阳。
//
//PSD 不是我喜欢的文件格式。
看来是实在忍无可忍了。吐槽完这一段后,作者又继续淡定地写完了脚本。
这段脚本的地址:
https://github.com/zepouet/Xee-xCode-4.5/blob/master/XeePhotoshopLoader.m#L108
20. 新人默默的在后面增加一行注释:浪费在这里的总时间=48h
21. 新人看到这样的注释都不用再尝试了,感恩前辈
22. 即使系统终止运行,这个BUG依然存在
23. 只能说下家公司真惨,这是有多大的积怨呢
24. 整个网站就此垮掉......
25. 敢这么诅咒老板的,我敬你是条汉子
26. 你不可能看懂这个
这是一段来自贝尔实验室的,第六版Unix Kernel,注释语句为“you are not expected to understand this”,意思就是,你不可能看懂这个。
27. 穷逼VIP
去年虾米音乐客户端的程序员竟然称一些活动送的VIP客户为“穷逼VIP“,引发了网友争议。
28. 不解释,看注释
29. 听前辈的话,把这块程序去掉就好了
30. 调试了半天才看到这个,新人表示已泪奔
31. 你有freestyle吗,也来一个?
32. 顾客要是不会看个代码注释,被坑了可能还不知道
33. 虽然没有年终奖,但我们有很多bug呀!
刚入职的程序员估计会被吓跑,然后感谢一下前辈。
34. 就连Nike也尝试了在他们的robots文件里加入了一个有趣的图案
35. 超级有自知之明的代码注释
36. 致敬每一个勇敢的编程骑士
37. 当然,闲的蛋疼的猿,还会做这样的注释
或者这样的:
甚至这样的:
38. 据说下图是程序员写注释时的基本思路
39. 最后,送给广大开发者们,恭祝代码无Bug
推荐阅读:
自言自语的独角戏小丑“讲”的“演讲”,看吗?https://blog.csdn.net/weixin_69553582/article/details/141300893
|
|
|
给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
|
|
|
计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
|
|
|
| ||
| ||
Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) | ||
|
|
|
立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦 | ||
|
|
|
用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心) | python爱心源代码集锦(18款) | |
|
|
|
|
| |
用代码过中秋,python海龟月饼你要不要尝一口? | ||
|
|
|
草莓熊python turtle绘图(风车版)附源代码 | ||
|
| |
皮卡丘python turtle海龟绘图(电力球版)附源代码 | ||
|
|
|
2024年6月多家权威机构____编程语言排行榜__薪酬状况 | ||
|
|
|
【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | ||
|
|
|