56

我在网上获得了一个功能来帮助我完成当前的项目,并且它在某些行上有分号。我想知道为什么?是破坏功能吗?

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
4

5 回答 5

102

分号在您显示的代码中没有任何作用。

我怀疑这是一个用另一种语言(C、Java、...)编程的人,在语句的末尾需要分号,这只是一种习惯(有时也发生在我身上)。

如果您想将多个 Python 语句放在同一行,可以使用分号分隔它们,请参阅此Python 文档

套件是由子句控制的一组语句。一个套件可以是一个或多个分号分隔的简单语句,与标题在同一行,在标题的冒号之后,或者它可以是一个或多个在后续行中的缩进语句

于 2012-09-08T23:40:35.673 回答
19

这里的分号没有任何作用。来自 C/C++/Java/(许多其他语言)背景的人出于习惯倾向于使用分号。

于 2012-09-08T23:41:47.560 回答
1

C、C++ 和 Java 的程序员习惯于使用分号告诉编译器这是语句的结尾,但对于 Python,情况并非如此。

原因是在 Python 中,换行符是分隔代码行的明确方式。这是设计使然,它的工作方式已经过彻底的思考。因此,Python 代码是完全可读且明确的,没有任何特殊的语句结束标记(除了换行符)。

于 2017-02-05T16:42:11.630 回答
1

一般来说,分号什么都不做。但是,如果您使用的是 jupyter notebook(取决于您的版本),您可能会得到一个绘制两次的图形。plot 命令末尾的分号可以防止这种情况:

df.plot();
于 2020-07-02T13:02:48.037 回答
0

正如其他答案所指出的那样,分号在那里什么都不做。它是一个分隔符(例如print 1;print 2)。但它不是这样工作的:(def func():print 1;print 2;;print'Defined!';;一个语法错误)。出于习惯,人们倾向于使用它(因为它在 C/Java 等语言中是必需的......)。

于 2016-04-14T14:56:06.580 回答