分号有啥作用?
Posted
技术标签:
【中文标题】分号有啥作用?【英文标题】:What does a semicolon do?分号有什么作用? 【发布时间】:2012-09-02 08:32:14 【问题描述】:我在网上找到了一个函数来帮助我完成当前的项目,它的某些行上有分号。我想知道为什么?是破坏功能吗?
def containsAny(self, strings=[]):
alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'
for string in strings:
for char in string:
if char in alphabet: return 1;
return 0;
稍加修改就上线的功能:
for string in strings:
for char in string:
if char in alphabet: return 1;
上面是说下面的吗?
if char in alphabet:
return 1
break
【问题讨论】:
附带说明,您可以在一行中执行此操作:any(char in alphabet for string in strings for char in string)
真的,谢谢,我试试看。
那么任何 = 会是什么?对或错
是的。 any
如果其可迭代对象中的任何元素为 True,则返回 True。
我用过,速度更快,谢谢
【参考方案1】:
分号在您显示的代码中没有任何作用。
我怀疑这是一个使用另一种语言(C、Java 等)编程的人,需要在语句末尾使用分号,这只是一种习惯(有时也会发生在我身上)。
如果你想把多个 Python 语句放在同一行,可以用分号隔开,见Python Doc:
套件是由一个子句控制的一组语句。套房可以 是同一行上的一个或多个分号分隔的简单语句 作为标题,在标题的冒号之后,也可以是一个或多个 后续行的缩进语句
【讨论】:
@A.R.S.我很幸运..而且我有时自己也会做分号的事情:) 谢谢,我有点糊涂了。 我通常用 php 编写代码,在我的一个工作 python 代码中发现了一个分号(仅由我编写,可能由于 PHP 实践),我也很困惑,它是如何工作的,并在搜索时偶然发现 @kadamb 今年夏天我才开始用 PHP 编写代码,但我一直忘记分号 :-)【参考方案2】:这里的分号没有任何作用。来自 C/C++/Java/(许多其他语言)背景的人出于习惯倾向于使用分号。
【讨论】:
【参考方案3】:正如其他答案所指出的那样,分号在那里没有任何作用。它是一个分隔符(例如print 1;print 2
)。但它不能像这样工作:def func():print 1;print 2;;print'Defined!'
(;;
是语法错误)。出于习惯,人们倾向于使用它(因为它是 C/Java 等语言所必需的......)。
【讨论】:
【参考方案4】:C、C++ 和 Java 的程序员习惯于使用分号告诉编译器这是语句的结尾,但对于 Python,情况并非如此。
原因是在 Python 中,换行符是分隔代码行的明确方式;这是设计使然,它的工作方式已经过彻底的思考。因此,Python 代码完全可读且明确,没有任何特殊的语句结束标记(换行符除外)。
【讨论】:
“经过深思熟虑”——在正常的对话中,你不会每天都能看到这三个词背靠背【参考方案5】:一般来说,分号什么都不做。但是,如果您使用的是 jupyter notebook(取决于您的版本),您可能会得到一个绘制两次的图形。 plot 命令末尾的分号可以防止这种情况:
df.plot();
【讨论】:
以上是关于分号有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章