在还没开始学代码前,就要先学会写注释。不会写注释的程序员会遭到鄙视和唾弃,甚至在工作中会被人穿小鞋。注释也不是随便写一下就行,用好注释还是有点讲究的。

注释有什么用?

注释(Comments)主要是向阅读代码的人解释某些代码的作用和功能,它可以出现在代码中的任何位置。Python 在执行代码时会忽略注释,不做任何处理,就好像它不存在一样。注释主要是给人看的,而不是给机器运行的。

举个例子。你写了一段非常厉害的代码,可以让汽车自动驾驶的代码,但是这段代码用了很多复杂的算法,别的人很难看懂,所以你就会在这一段代码中添加注释,解释下代码的意思。 这样,就算别人一时间很难理解代码,也可以通过读注释知道代码做了什么事情。

一般我们会使用 # 号来表示注释,并且在代码上方写注释来说明代码的作用。

# 这段代码实现了自动驾驶功能

# 使用 CNN 算法实现...
do_something_cnn

# 使用傅里叶转换
do_something

注释的最大作用是提高程序的可读性,没有注释的程序对别人来说简直就是噩梦。 我们写完代码以后,可能会有代码审查,如果很难理解,公司可能会打回来,让你重新补齐注释。

还有一种情况,当你半个月以后再来看之前写的代码,可能根本想不起来为什么这么写。有了注释,可以迅速帮你回想之前的实现细节。很多程序员宁愿自己去开发一个应用,也不愿意去修改别人的代码,没有合理的注释是一个重要的原因。

千万不要认为你自己写的代码规范就可以不加注释,这样很容易引起同事之间的相互嫌弃。

注释的表示方法

第一种方式是使用# 号,也就是上面的用法,它只能用来表示某一行是注释,不能表示多行, 如果同时有几行都是注释,就需要每一行前面都添加一个 # 号。

# 第一行注释
# 第二行注释
# 第三行注释
do_something_with_code

另一种方式是使用三引号 """""" ,这种方式可以非常方便的写多行注释,比较常用在注释比较长的的地方。

"""这段注释比较长。
因为比较长,所以我们用的是三个引号,

不管怎么换行,都会比较方便。

"""

do_something_with_code

快捷键

当表示注释时,每次都要在前面加上一个# 号是不方便的,所以经常会使用快捷键来表示注释,每个编辑器的快捷键会稍微有一点区别,以 Pycharm 为例,当需要表示注释时,我们把要注释的代码用鼠标选中,然后使用 ctrl + / 快捷键就可以自动在前面加上 # 号, 如果有多行,选中多行就可以了。

快捷键表示注释经常用在我们写了一些代码,结果暂时不想让这些代码运行,就可以使用快捷键,把这些代码迅速转成注释。后面想用的的时候再选中这些注释,再按一下快捷键,就又会转回代码。


comments.gif

大牛们的注释习惯

在我接触到的技术大牛中,都有一套自己的注释习惯,虽然每个人会稍微有点区别,但是大体上都差不多。现在都还没说开始写代码呢就学大牛,好像有点早,但我以为好的注释习惯能快速提高写代码的速度。

那么,一套好的注释习惯会包含哪些要素呢?

要素一:用注释在每个自己创建的文件上说明作者、联系方式、创建时间, 这样如果别人看到这段代码有什么疑问,可以第一时间联系你。

# -----------------------------------------------
# Author: 九柄
# 微信号: jiubing1
# 公众号: 九柄
# -----------------------------------------------

在 Pycharm 当中,你并不需要每创建一个文件都手动输入这些注释,可以通过模板创建的方式自动添加。有了模板以后,每创建一个新文件,pycharm 会自动带上这些注释信息。

在 Pycharm中点击 File→Settings→Editor→File and code Templates,右侧找到Python Script,如下图。 时间这种会变的直接用花括号括起来,不会变的就直接写。

要素二: 在文件的顶部说明一下这个文件的具体功能,在这里可以说明一下这个文件的具体用法,甚至可以举一些例子,别人可以照着操作。

"""数据操作模块。
主要是对数据库操作的封装,包括查询数据,插入数据,更新数据。

具体用法如下:

...

"""

要素三: 在每个函数的下面用多行注释写下函数的作用。

class DAO:
def insert_rows(self, table_name,data_set):
"""把excel文件数据导入数据库"""
pass

要素四:单行注释要适量,太多单行注释反而会影响别人阅读代码。想象一下,你的代码本来就写得不错,也容易理解,但是偏要写一行代码就说明一下什么意思,那就有点画蛇添足了。 所以单行注释只在特别难理解的代码上适度添加就行了,不需要每行代码都说明一下。

# 特别难懂的代码再写注释
do_something_difficultly()

总结

注释是学一门编程语言最简单的语法,实际上,这一片只讲了 # 号和 """""" 三引号这两个特别简单的语法。但是真要用起来,光会语法是不够的,编程总是要带入到具体的工作中, 如果没有具体的使用场景,学再多的语法是没什么用的。

我还准备了很多学习技巧和面试套路,基本都可以在文本名片 九柄 获取,顺便三连哦。

很多自学 Python 的人,看了很多教程,但最终还是不会用,不敢用,其中的原因就是没有根据实用性学习,总以为知识学得越多越好。
实际上,很多语法根本就没必要学,因为你这辈子都用不到,而像注释这样的语法,虽然很简单,但是要用好,也不一定容易。

Python自学教程2:大牛们怎么写注释的更多相关文章

  1. Python自学教程8-数据类型有哪些注意事项

    不知不觉,python自学教程已经更新到第八篇了,再有几篇,基本的语法就介绍完了. 今天来总结一下数据类型有哪些需要注意的地方. 元组注意事项 元组是另一种经常使用到的数据类型,看上去和列表差不多.它 ...

  2. Python自学教程1-安装pycharm和执行环境

    Python虽然简单,但是很多没有接触过的学起来还是比较困难的.因此很多人会报班去学,我觉得不需要花那个钱,只要方向正确,加上核心知识点的提炼,自学一个月左右就能上手. 我尝试写下这个自学教程,只讨论 ...

  3. Python自学教程5-字符串有哪些常用操作

    任何编程语言,不管是Python.Java 还是 Golang, 字符串都是最重要的一种数据类型. 但是字符串的操作又很多,初学者经常毫无头绪,不知道从哪儿学起,也不知道哪些操作用得多,今天九柄就和你 ...

  4. Python自学教程12-类和对象怎么用

    Python是一门现代化的编程语言,也是一门面向对象的编程语言. 现代编程语言几乎都支持面向对象编程,面向对象编程是最有效的软件编写方法之一.你可以用类和对象来表示现实当中的任何的事物和行为. 编写类 ...

  5. Python自学教程7:字典类型有什么用

    字典是Python中的一个重要操作,如果字典玩得顺,很多其他的数据类型就可以一通百通. Python字典的定义 字典使用一对大括号进行定义,键值对之间使用逗号隔开,键和值使用冒号分隔. 键必须是不可变 ...

  6. 孤荷凌寒自学python第七十五天开始写Python的第一个爬虫5

    孤荷凌寒自学python第七十五天开始写Python的第一个爬虫5 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 直接上代码.详细过程见文末屏幕录像 ...

  7. 孤荷凌寒自学python第七十四天开始写Python的第一个爬虫4

    孤荷凌寒自学python第七十四天开始写Python的第一个爬虫4 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 直接上代码.详细过程见文末屏幕录像 ...

  8. Python学习教程(一)自学资源分享

    Python 可以用来做什么? 在我看来,基本上可以不负责任地认为,Python 可以做任何事情.无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发.桌面程序开发还是科学计算.图像处理, ...

  9. Python快速教程 尾声

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基 ...

随机推荐

  1. 【zigbee无线通信模块步步详解】ZigBee3.0模块建立远程网络控制方法

    本文以路灯控制应用为例,简述ZigBee3.0模块使用流程. 一.建立网络 1.通过USB转串口模块将出厂的ZigBee自组网模块连接,打开上位机软件"E180-ZG120A-Setting ...

  2. vue华视电子身份证阅读器的使用

          ie还是谷歌都是可以用的 只需要直接启用华视电子身份证阅读器的服务来的,至于服务已经上传到了网上   华视阅读器服务,下载下来解压,找到对应的华视电子读卡服务.exe文件,路径是CVR-1 ...

  3. ES6 伪数组转真数组

    更新日志 2022年6月13日 发布. 2022年5月19日 笔记迁移到博客. 直接上代码 [...a];

  4. springboot available: expected at least 1 bean which qualifies as autowire candidate奇葩问题

    Exception encountered during context initialization - cancelling refresh attempt: org.springframewor ...

  5. MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI

    1. 前言 距离上次发<MAUI初体验:爽>一文已经过去2个月了,本计划是下半年或者明年再研究MAUI的,现在计划提前啦,因为我觉得MAUI Blazor挺有意思的:在Android.iO ...

  6. React与Koa一起打造一个功能丰富的全栈个人博客(业务篇)

    前言 豆哥的个人博客又改版了,本版主要技术栈是前台用的React,后台用的Koa.博客改版的初衷是自己可以练练React(公司的项目部分要用React,我也没法啊,再说早晚得学).本文主要介绍博客的业 ...

  7. SAP Table control

    REPORT RSDEMO02. * demostrates the use of table controls * unsolved problems: attributes left_col an ...

  8. 论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》

    论文信息 论文标题:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering论文作者:Bo Yang, Xi ...

  9. C#中List实体类转换为object 并把参数返回到前端

    用ConvertAll方法转换: List<Object> m= list.ConvertAll(s=> (object)s); 返回的结果:

  10. Markdown 的基本使用

    Markdown基本语法 1.标题 //标题的写法 #一级标题 ##二级标题 ###三级标题 //以此类推... 效果: 一级标题 二级标题 三级标题 2.分割线 使用三个或以上-或*表示,并且改行不 ...