中企动力 > 头条 > python中如何注释

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python中如何注释

在Python 2.7即将停止支持时,我们为你准备了一份3.x迁移指南 推广视频课程

img

雍访风

关注

机器之心编译

目前,Python 科学栈中的所有主要项目都同时支持 Python 3.x 和 Python 2.7,不过,这种情况很快即将结束。去年 11 月,Numpy 团队的一份声明引发了数据科学社区的关注:这一科学计算库即将放弃对于 Python 2.7 的支持,全面转向 Python 3。Numpy 并不是唯一宣称即将放弃 Python 旧版本支持的工具,pandas 与 Jupyter notebook 等很多产品也在即将放弃支持的名单之中。对于数据科学开发者而言,如何将已有项目从 Python 2 转向 Python 3 成为了正在面临的重大问题。来自莫斯科大学的 Alex Rogozhnikov 博士为我们整理了一份代码迁移指南。

Python 3 功能简介

Python 是机器学习和其他科学领域中的主流语言,我们通常需要使用它处理大量的数据。Python 兼容多种深度学习框架,且具备很多优秀的工具来执行数据预处理和可视化。

但是,Python 2 和 Python 3 长期共存于 Python 生态系统中,很多数据科学家仍然使用 Python 2。2019 年底,Numpy 等很多科学计算工具都将停止支持 Python 2,而 2018 年后 Numpy 的所有新功能版本将只支持 Python 3。

为了使 Python 2 向 Python 3 的转换更加轻松,我收集了一些 Python 3 的功能,希望对大家有用。

使用 pathlib 更好地处理路径

pathlib 是 Python 3 的默认模块,帮助避免使用大量的 os.path.joins:

from pathlib importPath

dataset ='wiki_images'

datasets_root =Path('/path/to/datasets/')

train_path = datasets_root / dataset /'train'

test_path = datasets_root / dataset /'test'

for image_path in train_path.iterdir():

with image_path.open()as f:# note, open is a method of Path object

# do something with an image

Python 2 总是试图使用字符串级联(准确,但不好),现在有了 pathlib,代码安全、准确、可读性强。

此外,pathlib.Path 具备大量方法,这样 Python 新用户就不用每个方法都去搜索了:

p.exists()

p.is_dir()

p.parts()

p.with_name('sibling.png')# only change the name, but keep the folder

p.with_suffix('.jpg')# only change the extension, but keep the folder and the name

p.chmod(mode)

p.rmdir()

pathlib 会节约大量时间,详见:

文档:https://docs.python.org/3/library/pathlib.html;

参考信息:https://pymotw/3/pathlib/。

类型提示(Type hinting)成为语言的一部分

PyCharm 中的类型提示示例:

Python 不只是适合脚本的语言,现在的数据流程还包括大量步骤,每一步都包括不同的框架(有时也包括不同的逻辑)。

类型提示被引入 Python,以帮助处理越来越复杂的项目,使机器可以更好地进行代码验证。而之前需要不同的模块使用自定义方式在文档字符串中指定类型(注意:PyCharm 可以将旧的文档字符串转换成新的类型提示)。

下列代码是一个简单示例,可以处理不同类型的数据(这就是我们喜欢 Python 数据栈之处)。

def repeat_each_entry(data):

""" Each entry in the data is doubled

"""

index = numpy.repeat(numpy.arange(len(data)),2)

return data[index]

上述代码适用于 numpy.array(包括多维)、astropy.Table 和 astropy.Column、bcolz、cupy、mxnet.ndarray 等。

该代码同样可用于 pandas.Series,但是方式是错误的:

repeat_each_entry(pandas.Series(data=[0,1,2], index=[3,4,5]))# returns Series with Nones inside

这是一个两行代码。想象一下复杂系统的行为多么难预测,有时一个函数就可能导致错误的行为。明确了解哪些类型方法适合大型系统很有帮助,它会在函数未得到此类参数时给出提醒。

def repeat_each_entry(data:Union[numpy.ndarray, bcolz.carray]):

如果你有一个很棒的代码库,类型提示工具如 MyPy 可能成为集成流程中的一部分。不幸的是,提示没有强大到足以为 ndarrays/tensors 提供细粒度类型,但是或许我们很快就可以拥有这样的提示工具了,这将是 DS 的伟大功能。

类型提示 → 运行时的类型检查

默认情况下,函数注释不会影响代码的运行,不过它也只能帮你指出代码的意图。

但是,你可以在运行时中使用 enforce 等工具强制进行类型检查,这可以帮助你调试代码(很多情况下类型提示不起作用)。

@enforce.runtime_validation

def foo(text: str)->None:

print(text)

foo('Hi')# ok

foo(5)# fails

@enforce.runtime_validation

def any2(x:List[bool])->bool:

return any(x)

any ([False,False,True,False])# True

any2([False,False,True,False])# True

any (['False'])# True

any2(['False'])# fails

any ([False,None,"",0])# False

any2([False,None,"",0])# fails

函数注释的其他用处

如前所述,注释不会影响代码执行,而且会提供一些元信息,你可以随意使用。

例如,计量单位是科学界的一个普遍难题,astropy 包提供一个简单的装饰器(Decorator)来控制输入量的计量单位,并将输出转换成所需单位。

# Python 3

from astropy import units as u

@u.quantity_input()

def frequency(speed: u.meter / u.s, wavelength: u.m)->u.terahertz:

return speed / wavelength

frequency(speed=300_000 * u.km / u.s, wavelength=555* u.nm)

# output: 540.5405405405404 THz, frequency of green visible light

如果你拥有 Python 表格式科学数据(不必要太多),你应该尝试一下 astropy。你还可以定义针对某个应用的装饰器,用同样的方式来控制/转换输入和输出。

通过 @ 实现矩阵乘法

下面,我们实现一个最简单的机器学习模型,即带 L2 正则化的线性回归:

# l2-regularized linear regression: || AX - b ||^2 + alpha * ||x||^2 ->min

# Python 2

X = np.linalg.inv(np.dot(A.T, A)+ alpha * np.eye(A.shape[1])).dot(A.T.dot(b))

# Python 3

X = np.linalg.inv(A.T @ A + alpha * np.eye(A.shape[1]))@(A.T @ b)

下面 Python 3 带有 @ 作为矩阵乘法的符号更具有可读性,且更容易在深度学习框架中转译:因为一些如 X @ W + b[None, :] 的代码在 numpy、cupy、pytorch 和 tensorflow 等不同库下都表示单层感知机。

使用 ** 作为通配符

递归文件夹的通配符在 Python2 中并不是很方便,因此才存在定制的 glob2 模块来克服这个问题。递归 flag 在 Python 3.6 中得到了支持。

import glob

# Python 2

found_images = \

glob.glob('/path*.jpg') \

+ glob.glob('/path*.jpg') \

+ glob.glob('/path***.jpg')

# Python 3

found_images = glob.glob('/path*.jpg', recursive=True)

python3 中更好的选择是使用 pathlib:

# Python 3

found_images = pathlib.Path('/path/').glob('**/*.jpg')

Print 在 Python3 中是函数

Python 3 中使用 Print 需要加上麻烦的圆括弧,但它还是有一些优点。

使用文件描述符的简单句法:

print>>sys.stderr,"critical error"# Python 2

print("critical error", file=sys.stderr)# Python 3

在不使用 str.join 下输出 tab-aligned 表格:

# Python 3

print(*array, sep='\t')

print(batch, epoch, loss, accuracy, time, sep='\t')

修改与重新定义 print 函数的输出:

# Python 3

_print =print# store the original print function

defprint(*args,**kargs):

pass# do something useful, e.g. store output to some file

在 Jupyter 中,非常好的一点是记录每一个输出到独立的文档,并在出现错误的时候追踪出现问题的文档,所以我们现在可以重写 print 函数了。

在下面的代码中,我们可以使用上下文管理器暂时重写 print 函数的行为:

@contextlib.contextmanager

def replace_print():

import builtins

_print =print# saving old print function

# or use some other function here

builtins.print=lambda*args,**kwargs: _print('new printing',*args,**kwargs)

yield

builtins.print= _print

with replace_print():

上面并不是一个推荐的方法,因为它会引起系统的不稳定。

print 函数可以加入列表解析和其它语言构建结构。

# Python 3

result = process(x)if is_valid(x)elseprint('invalid item: ', x)

f-strings 可作为简单和可靠的格式化

默认的格式化系统提供了一些灵活性,且在数据实验中不是必须的。但这样的代码对于任何修改要么太冗长,要么就会变得很零碎。而代表性的数据科学需要以固定的格式迭代地输出一些日志信息,通常需要使用的代码如下:

# Python 2

print('{batch:3} {epoch:3} / {total_epochs:3} accuracy: {acc_mean:0.4f}±{acc_std:0.4f} time: {avg_time:3.2f}'.format(

batch=batch, epoch=epoch, total_epochs=total_epochs,

acc_mean=numpy.mean(accuracies), acc_std=numpy.std(accuracies),

avg_time=time / len(data_batch)

))

# Python 2 (too error-prone during fast modifications, please avoid):

print('{:3} {:3} / {:3} accuracy: {:0.4f}±{:0.4f} time: {:3.2f}'.format(

batch, epoch, total_epochs, numpy.mean(accuracies), numpy.std(accuracies),

time / len(data_batch)

))

样本输出:

12012/300 accuracy:0.8180±0.4649 time:56.60

f-strings 即格式化字符串在 Python 3.6 中被引入:

# Python 3.6+

print(f'{batch:3} {epoch:3} / {total_epochs:3} accuracy: {numpy.mean(accuracies):0.4f}±{numpy.std(accuracies):0.4f} time: {time / len(data_batch):3.2f}')

另外,写查询语句时非常方便:

query = f"INSERT INTO STATION VALUES (13, '{city}', '{state}', {latitude}, {longitude})"

「true pision」和「integer pision」之间的明显区别

对于数据科学来说这种改变带来了便利(但我相信对于系统编程来说不是)。

data = pandas.read_csv('timing.csv')

velocity = data['distance']/ data['time']

Python 2 中的结果依赖于『时间』和『距离』(例如,以米和秒为单位)是否被保存为整数。

在 Python 3 中,结果的表示都是精确的,因为除法的结果是浮点数。

另一个案例是整数除法,现在已经作为明确的运算:

n_gifts = money // gift_price # correct for int and float arguments

注意,该运算可以应用到内建类型和由数据包(例如,numpy 或 pandas)提供的自定义类型。

严格排序

# All these comparisons are illegal in Python 3

3<'3'

2

(3,4)<(3,None)

(4,5)<[4,5]

# False in both Python 2 and Python 3

(4,5)==[4,5]

防止不同类型实例的偶然性的排序。

sorted([2,'1',3])# invalid for Python 3, in Python 2 returns [2, 3, '1']

在处理原始数据时帮助发现存在的问题。

旁注:对 None 的合适检查是(两个版本的 Python 都适用):

if a isnotNone:

pass

if a:# WRONG check for None

pass

自然语言处理的 Unicode

s ='您好'

print(len(s))

print(s[:2])

输出:

Python 2: 6\n

Python 3: 2\n 您好.

x = u'со'

x +='co'# ok

x +='со'# fail

Python 2 在此失败了,而 Python 3 可以如期工作(因为我在字符串中使用了俄文字母)。

在 Python 3 中 strs 是 Unicode 字符串,对非英语文本的 NLP 处理更加方便。

还有其它有趣的方面,例如:

'a'< type < u'a'# Python 2: True

'a'< u'a'# Python 2: False

from collections importCounter

Counter('Mbelstück')

Python 2: Counter({'\xc3': 2, 'b': 1, 'e': 1, 'c': 1, 'k': 1, 'M': 1, 'l': 1, 's': 1, 't': 1, '\xb6': 1, '\xbc': 1})

Python 3: Counter({'M': 1, '': 1, 'b': 1, 'e': 1, 'l': 1, 's': 1, 't': 1, 'ü': 1, 'c': 1, 'k': 1})

这些在 Python 2 里也能正确地工作,但 Python 3 更为友好。

保留词典和**kwargs 的顺序

在 CPython 3.6+ 版本中,字典的默认行为类似于 OrderedDict(在 3.7+版本中已得到保证)。这在字典理解(和其他操作如 json 序列化/反序列化期间)保持顺序。

import json

x ={str(i):i for i in range(5)}

json.loads(json.dumps(x))

# Python 2

{u'1':1, u'0':0, u'3':3, u'2':2, u'4':4}

# Python 3

{'0':0,'1':1,'2':2,'3':3,'4':4}

它同样适用于**kwargs(在 Python 3.6+版本中):它们的顺序就像参数中显示的那样。当设计数据流程时,顺序至关重要,以前,我们必须以这样繁琐的方式来编写:

from torch import nn

# Python 2

model = nn.Sequential(OrderedDict([

('conv1', nn.Conv2d(1,20,5)),

('relu1', nn.ReLU()),

('conv2', nn.Conv2d(20,64,5)),

('relu2', nn.ReLU())

]))

# Python 3.6+, how it *can* be done, not supported right now in pytorch

model = nn.Sequential(

conv1=nn.Conv2d(1,20,5),

relu1=nn.ReLU(),

conv2=nn.Conv2d(20,64,5),

relu2=nn.ReLU())

)

注意到了吗?名称的唯一性也会被自动检查。

迭代地拆封

# handy when amount of additional stored info may vary between experiments, but the same code can be used in all cases

model_paramteres, optimizer_parameters,*other_params = load(checkpoint_name)

# picking two last values from a sequence

*prev, next_to_last, last = values_history

# This also works with any iterables, so if you have a function that yields e.g. qualities,

# below is a simple way to take only last two values from a list

*prev, next_to_last, last = iter_train(args)

默认的 pickle 引擎为数组提供更好的压缩

# Python 2

import cPickle as pickle

import numpy

print len(pickle.dumps(numpy.random.normal(size=[1000,1000])))

# result: 23691675

# Python 3

import pickle

import numpy

len(pickle.dumps(numpy.random.normal(size=[1000,1000])))

# result: 8000162

节省 3 倍空间,而且速度更快。实际上,类似的压缩(不过与速度无关)可以通过 protocol=2 参数来实现,但是用户...

学习Python必不可少的几款好用的Python开发工具!你会几个? 企业视频课程

img

woro

关注

Python 是一门新手友好、功能强大、高效灵活的编程语言,学会之后无论是想进入数据分析、人工智能、网站开发这些领域,还是希望掌握第一门编程语言,都可以用 Python 来开启无限未来的无限可能!工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法。今天千锋武汉Python培训小编推荐下面这几个Python开发工具,相信一定会给你的工作带来很多便利。

Python Tutor

Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并逐步可视化地运行程序。如果你不知道代码在内存中是如何运行的,不妨把它拷贝到Tutor里可视化执行一遍,加深理解。

地址:http://pythontutor/

IPython

IPython 是一个 for Humans 的 Python 交互式 shell,用了它之后你就不想再用自带的 Python shell 了,IPython 支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多实用功能和函数,同时它也是科学计算和交互可视化的最佳平台。

地址:https://ipython.org/

Jupyter Notebook

Jupyter Notebook 就像一个草稿本,能将文本注释、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,以 Web 页面的方式展示。它是数据分析、机器学习的必备工具。

地址:http://jupyter.org/

Anaconda

Python 虽好,可总是会遇到各种包管理和 Python 版本问题,特别是 Windows 平台很多包无法正常安装,为了解决这些问题,Anoconda 出现了,Anoconda 包含了一个包管理工具和一个Python管理环境,同时附带了一大批常用数据科学包,也是数据分析的标配。

地址:https://anaconda/

Skulpt

Skulpt 是一个用 Java 实现的在线 Python 执行环境,它可以让你轻松在浏览器中运行 Python 代码。使用 skulpt 结合 CodeMirror 编辑器即可实现一个基本的在线Python编辑和运行环境。

Win10系统如何搭建Python 3.5.2开发环境

因为工作需求,一位 windows10正式版 用户,想要在最新的系统中搭建Python 3.5.2开发环境。那么,这该如何操作呢?会不会非常复杂呢?为了帮助大家更好地使用win10系统,下面小编就分享搭建和测试Python 3.5.2开发环境的具体方法。

Win10系列软件最新版本下载

Win10系统正式版立即下载360安全卫士Win10版立即下载Win10优化大师立即下载具体方法如下:

1、首先从Python官网下载安装软件,如下图,输入IP地址;

2、找到Download,单击下面Python 3.5.2进入下载页面;

3、点击“windows x86-64 executable installer”进行下载;

各个版本的介绍:

(下面的都是windows系统平台的安装包,x86适合32位操作系统;x86-64适合64位操作系统)

下面是官网的解释:

The binaries for AMD64 will also work on processors that implement

the Intel 64 architecture. (Also known as the "x64" architecture, and

formerly known as both "EM64T" and "x86-64".) They will not work on

Intel Itanium Processors (formerly "IA-64").

Windows users: If installing Python 3.5 as a non-privileged user,

you may need to escalate to administrator privileges to install an

update to your C runtime libraries.

Windows users: There are now "web-based" installers for Windows

platforms; the installer will download the needed software components at

installation time.

Windows Users: There are redistributable zip files containing the

Windows builds, making it easy to redistribute Python as part of another

software package. Please see the documentation regarding Embedded Distribution for more information.It is intended for acting as part of another application, rather than being directly accessed by end-users.

可以通过下面3种途径获取python:

web-based installer 是需要通过联网完成安装的

executable installer 是可执行文件(*.exe)方式安装

embeddable zip file 嵌入式版本,可以集成到其它应用中

4、找到下载后的文件;

5、双击安装文件,点击下图所示的自定义安装“custom installation”;

6、点击下一步,“Next”;

7、此处可更换安装目录,然后单击安装“install”;

8、等待自动安装……

9、安装成功!

运行测试:

1、启动Python shell,在“搜索Web和Windows”中输入:idle;

2、就会启动python IDLE,可以交互运行python;

3、同样可以按“Ctrl + N”打开IDLE开发工具,输入程序代码;

4、编写完程序后,“Ctrl + S”保存,然后如大多数编程软件一样,按“F5”运行程序;

5、如果程序没有问题,此时在Idle中打印出“Hello World!”。

Win10搭建Python 3.5.2开发环境教程就介绍到这里了。刚刚使用windows10正式版的用户们,如果也有同样需求的话,不妨按照上述步骤操作自己手动一遍。

好了,今天的知识就分享到这里,欢迎关注爱编程的南风,私信关键词:学习资料,获取更多学习资源,如果文章对你有有帮助,请收藏关注,在今后与你分享更多学习python的文章。同时欢迎在下面评论区留言如何学习python。

Python,针对指定文件类型,过滤空行和注释,统计行数 营销视频课程

img

宠物

关注

写在前面:

参考网络上代码编辑而成,无技术含量,可自行定制:

目前亲测有效,若有待完善之处,还望指出!

强调:将此统计py脚本放置项目的根目录下执行即可。

1、遍历文件,递归遍历文件夹中的所有

2、指定文件类型:项目的代码行数,故只考虑.py文件,当然也可在指定的文件类型列表whitelist中添加其他类型

3、过滤空行和注释,注意采用的读取文件模式为‘rb’

完整源码:

测试对象样本,test.py:

结果为:2

自学python编程笔记之:python的注释 企业视频课程

img

Honoria

关注

python中有两种注释:

看以下程序示例(未使用注释):

看以下程序示例(使用注释):

一、注释的作用:

增加程序的可读性,让开发者或后续接手程序进行维护修改的程序员提供可读性。

好的程序代码通常有50%是注释!

只要是被注释的代码都不会被执行!

二、注释的分类:

2.1 单行注释:

以井号“#”符号开头,其右边的都是注释,#字符开头的都是单行注释,内容不能换行,如果注释内容换行了,那么要在新的一行的,行首加一个#

如:

#以下代码用来打打印一个信息

print("hello world")

#这里是单行注释

#这是另一单行注释

2.2 多行注释:

三个单引号或三个双引号之间的

'''

print("hello world")

print("hello world")

print("hello world")

print("hello world")

'''

"""

三个双引号之间的内容都是注释

print("hello world")

print("hello world")

print("hello world")

"""

三、相关错误提示

代码:

#coding=utf-8

#这是一行注释

print("hello world")

'''

三个单引号之间的内容都是注释

print("hello world")

print("hello world")

print("hello world")

'''

"""

三个双引号之间的内容都是注释

print("hello world")

print("hello world")

print("hello world")

"""

执行以上代码,会提示如下错误:

SyntaxError: (unicode error) 'utf-8' codec can't decode

这是因为文件存储的格式是ANSI,只需用notepad++打开代码文件,以UTF-8格式编码保存即可。

菜鸟学Python之二:关于注释的那些事 流量视频课程

img

齐碧

关注

菜鸟学Python之二:关于注释的那些事

大家好,我是@爱玩电脑,今天跟大家一起零基础入门学习Python的第二个知识点,关于注释的那些事,纯粹零基础入门,高手绕行。

镇楼图

普遍认为,在程序代码中写注释是很重要的。注释的作用我了解的大概有二个:一是对你写的代码进行说明,免得自己过一段时间后忘记写代码时候的思路了,或者别人接手你的代码,完全搞不清楚你写的什么玩意儿;二是临时把代码禁用掉,方便调试程序。当然,也有高手声称好的代码就是注释,坏的注释反而影响代码美观,反正是见仁见智,我们且不去争辩,先来看看Python中添加注释的方法吧。

一、单行注释

单行注释的符号是"#",在程序段中输入井号后,整行的句子都变成注释语句了。

我们在IDLE中输入如下代码试试:

图一 单行注释

按F5,程序运行结果是这样的:

图二 运行结果

如果我们在第二个print语句前加上井号,

图三 把语句给注释掉

可以看到第二句print语句全部变成红色了。具体效果你可以自己试试。

二、多行注释

"#"在Python中只能用于注释一行语句,如果要注释一大段语句,用"#"来一句句的注释就显得太麻烦了,在Python中可以使用三个引号来进行多行注释的操作,如下图:

图四 多行注释

英文输入法下面的三个双引号效果也是一样的。

好吧,《菜鸟学Python之 二:关于注释的那些事》就讲到这里。文章由@爱玩电脑原创,转载请注明出处。

Python的编码注释 -*- coding:utf-8 -* 营销视频课程

img

贲语薇

关注

如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码。

[python] view plain copy

# -*- coding:utf-8 -*-

问题就来了,为什么要如此声明?

首先请参考python的PEP http://python.org/dev/peps/pep-0263/

概要如下

1.必须将编码注释放在第一行或者第二行

2.可选格式有

[python] view plain copy

# coding=

[python] view plain copy

#!/usr/bin/python # -*- coding: -*-

[python] view plain copy

#!/usr/bin/python # vim: set fileencoding=:

但是再往下看,发现其实只要注释里面有coding 和对应的编码就可以了,例如

[python] view plain copy

#!/usr/bin/python # vim: set fileencoding=:

所以搞了半天对最标准的做法也有点糊涂了。

后来想了想,看了下VIM中对python的语法高亮文件,里面把如下的正则表达式确定为编码声明

[plain] view plain copy

\%^.*\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$

对于这个正则有些有点看不懂,但是大致如下必须有coding:[编码]或者coding=[编码]才行,这个应该可以视作为标准的声明方式吧。

但是为什么通常这种方式呢?

[python] view plain copy

# -*- coding:utf-8 -*-

答案在PEP-0263里面有所提及,那就是Emacs等编辑器使用这种方式进行编码声明。

话说PEP里面很多东西都是很值得参考的毕竟可以知道为什么程序这样设计。

python入门——注释的妙用 企业视频课程

img

糜媚

关注

坚持每天更新,帮助入门python

小伙伴们,夜深了,给大家讲一讲python注释的吧。大家如果学习过c语言,就会知道程序的注释有什么用。这里多提一句吧,C语言的注释分两种,单行注释和多行注释。C语言的单行注释是最常用的是//,多行注释最常用的是

好了,言归正传我们继续来学习python吧,python常用单行注释是#,常用多行注释是三对单引号''' '''

全理论太抽象,我们一起来看一看例子吧~~~

一、单行注释

单行注释

第一个print

print 'woaipython','hello,world'

打印出来

woaipython hello,world

我们加上注释符#后,

print 'woaipython'#,'hello,world'

打印出来

woaipython

我们可以发现,注释符#后的代码是不会执行的。

二、多行注释

首先,我们来写一个有多行的小程序

rint 'woaipython'print 'ilovepython'print 'hello'print 'world'print 'python'

我们运行一下这个小程序

我么可以看见打印出了许多数据,接下来我们给第2~4行加上多行注释

print 'woaipython'''' print 'ilovepython'print 'hello'print 'world' '''print 'python'

运行一下

我们可以看见只有第一行和第五行显示了。我们注释掉的2~4行没运行。

总结一下,注释符除了望文生义作注释用、解释程序意思的作用外,还可以把你不想运行也不想删除的程序段给屏蔽起来。

注:刚刚使用的编辑器是gnome桌面自带的gedit编辑器,需要先建一个拓展名为.py文件(命令:touch python.py)。编写完后保存,再使用命令python python.py就可以打印结果了。

每天学一点,积少成多。

后期会循序渐进、由浅入深的讲解python知识,如果想学习python入门,欢迎订阅。

如果还有不明白的小伙伴,欢迎留言评论或私信告诉我。

Python中如何添加注释?Python注释形式 推广视频课程

img

Zoe

关注

注释是对一段代码的解释和说明,可提高程序代码的可读性,让人们能够更加轻松地了解代码,尤其在大型项目开发和团队项目中,注释是必不可少的!

任何编程语言都少不了注释,Python也不例外,以下是Python注释的具体用法:

1. 单行注释

Python编程语言的单行注释常以#开头,单行注释可以作为单独的一行放在被注释代码行之上,也可以放在语句或者表达式之后。

实例:

# -*- coding: UTF-8 -*-

print ("hello world!"); #您好,世界

2. 多行注释

Python中多行注释使用三个单引号(’’’)或者三个双引号(”””)来标记,而实际上这是多行字符串的书写方式,并不是Python本身提倡的多行注释方法。

实例:

'''

这是多行注释,使用单引号。

这是多行注释,使用单引号。

'''

"""

这是多行注释,使用双引号。

这是多行注释,使用双引号。

"""

3. 编码注释

在进行Python开发时,需进行编码声明,如采用UTF-8编码,需在源码上方进行 # -*- coding: UTF-8 -*- 声明,从Python3开始,Python默认使用UTF-8编码,所以Python3.x的源文件不需要特殊声明UTF-8编码。

4. 平台注释

如果需要使Python程序运行在Windows平台上,需在Python文件的上方加上 #!/usr/bin/python 注释说明。

Python注释除了可以起到说明文档的作用外,还可以进行代码的调试,将一部分代码注释掉,对剩余的代码进行排查,从而找出问题所在,进行代码的完善!

img

TOP