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

注释有什么用?

注释(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. Java 多线程共享模型之管程(上)

    主线程与守护线程 默认情况下,Java 进程需要等待所有线程都运行结束,才会结束.有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束. packag ...

  2. BI 如何让SaaS产品具有 “安全感”和“敏锐感”(上)

    SaaS模式一经推出,凭借自身的高性价比.低维护成本,无需软硬件维护.无需运维等明晃晃的优点,得到了爆发式的增长,甚至全面改变了软件的开发模式.各位老总的问候语,不知从什么时候开始,都变成了:&quo ...

  3. 超级重磅!Apache Hudi多模索引对查询优化高达30倍

    与许多其他事务数据系统一样,索引一直是 Apache Hudi 不可或缺的一部分,并且与普通表格式抽象不同. 在这篇博客中,我们讨论了我们如何重新构想索引并在 Apache Hudi 0.11.0 版 ...

  4. 如何正确理解古典概率中的条件概率 《考研概率论学习之我见》 -by zobol

    "B事件发生的条件下,A事件发生的概率"? "在A集合内有多少B的样本点"? "在B约束条件下,A发生的概率变化为?" "B事件中 ...

  5. 领导:谁再用redis过期监听实现关闭订单,立马滚蛋!

    日前拜读阿牛老师的大作 领导:谁再用定时任务实现关闭订单,立马滚蛋! 发现其方案有若干瑕疵,特此抛砖引玉讨论一二. 在电商.支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时 ...

  6. ABAP CDS - Language Elements

    The following sections summarize the language elements of the DDL and DCL of the ABAP CDS, arranged ...

  7. Spring Data JPA系列4——Spring声明式数事务处理与多数据源支持

    大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第四篇了,先来回顾下前面三篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...

  8. Kali2019渗透环境配置

    一.系统安装 二.基础配置 # 配置源 vim /etc/apt/sources.list # kali官方源 deb http://http.kali.org/ kali-rolling main ...

  9. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》

    论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...

  10. multiset 用法复习

    前言 看题解上有 \(\text{multiset}\) 然后发现没脑子的我又忘了... 正文 \(\text{multiset}\) 可以看成一个序列,插入一个数,删除一个数都能够在 \(O(\lo ...