python语句分号_被“嫌弃”的分号的一生:不要在Python中使用无用分号了-阿里云开发者社区...

云栖号资讯:【点击查看更多行业资讯】

在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

6013e5b079ec182ac2434d242f9b9398121edc53.png

我常在C / C ++语言中看到很多分号。在代码中,分号表示语句终止。Python并未强制使用分号来分隔语句,但因为分号导致Python乱码的情况可不少。

最近,笔者正在学习Python的数据科学课程。讲师讲解了条件语句并编写了以下代码:

temp =10;if temp <12: print( It is cold ); cold = True;

笔者当时的反应是:这太可怕了!分号仅在Python中的非典型情况下使用。笔者准备了一篇小指南,解释为什么不应该在Python中使用分号,并列出了少数特殊情况。

语句终止符

4903209af9b26639e243c513fcc5c92c581b9871.png

在许多大众的编程语言中,需要在每个语句的末尾添加分号。例如,在C ++中:

int c =10;

int a = 5;printf( In C++, semicolon at the end is must );

但Python并非如此。Python是一种简洁的编程语言,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号,引号或括号除外)。例如:

c = 10

a = 5print( No semicolons in Python )

语句分隔符

Python中的分号表示分隔,而不是终止。它允许在同一行中编写多个语句。

print( Statement1 ); print( Statement 2 ); print( Statement 3 )

此语法允许在单个语句的末尾加上分号:

print( WhyGod? WHY? );

该语句表示print( ... ),然后在下一句终止。因此它实际上是两个语句,其中第二个为空。即使该语言允许使用分号分隔语句,但大多数Python程序员都不会在其代码中使用它。

b58e42994bea28d59b4138335e6eac05bb9c4aa2.png

Python应该是清晰可读的。分号之类的语法字符会导致不必要的混乱。如果将这样的代码发送给经验丰富的Python程序员,他可能不会再理你了。

temp =10; cold =False;

if temp<15: print( It is cold ); cold =True; print( Another statement )

print(cold); print( Done );

将多条语句强制放在一行上会使原本简单的代码难以阅读。

何时使用分号?

那么问题来了,既然分号既不美观又碍事,为什么Python中允许使用分号?

笔者认为,这是为了使两种编程语言之间的转换变得稍微容易一些。具有Java,C ++和PHP背景的程序员习惯性地将(无用的)终止符放在每一行的末尾。

但是,在下列这些情况下,分号也会派上用场:

从Shell运行脚本

最常见的一种情况是使用python-c

python-c import math; t = math.pi;print(int(t))’

另一个用例是exec语句:

exec( fori in [100,200,300]: print(i);print(i*2) )

评估表达式的副作用

a8a5ee393f953fa50b89637fce0e5b72e0a49d4a.png

在Jupyter Notebook之类的交互式环境中工作时,最后一个表达式返回的值将以字符串形式输出。评估某个函数的副作用真的会很烦人,在matplotlib中查看这个问题会产生赘余。

笔者将在JupyterNotebook中创建一个简单的直方图。如下图所示,运行此脚本会在输出时添加多余的一行:Text(0.5,1.0, Histogram )。

7629693f9c3b23664dc8f446749caa7ec080be5f.png

这实际上是调用.set_title(...)函数的返回值。为了抑制输出,可以在最后一条语句的末尾添加一个分号:

axis.set_title( Histogram ,size=10);

简洁就是伟大,我们在编写代码时应避免添加任何多余的字符。删掉那些多余的分号吧,仅在必要时使用即可。

【云栖号在线课堂】每天都有产品技术专家分享!

课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!

【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-23

本文作者:读芯术

本文来自:“读芯术公众号”,了解相关信息可以关注“读芯术”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值