分号在编程中有什么作用?

59

我在网上找到了一个函数来帮助我的项目,但其中一些行有分号。我想知道这是为什么?它是用来结束函数的吗?

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

5个回答

105

在您展示的代码中,分号无作用。

我怀疑这是由于某些人习惯了其他需要在语句末尾添加分号的语言(如C、Java等)。

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

一组由从属子句控制的语句称为一个suite。一个suite可以是位于头部后面的冒号后、在同一行上由一个或多个以分号分隔的简单语句组成,也可以是一个或多个空格缩进的语句。


分号可以在IPython中抑制输出 - Peter Mortensen

19

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


2

一般来说,分号没有任何作用。但是如果您正在使用Jupyter笔记本(取决于您的版本),您可能会多次绘制图形。在绘图命令的末尾加上分号可以防止这种情况发生:

df.plot();

是的,这比对动机的猜测要好得多... - Peter Mortensen

1
C、C++和Java程序员习惯使用分号告诉编译器这是语句的结尾,但对于Python来说并非如此。原因在于,在Python中,换行是一种明确区分代码行的方式;这是经过深思熟虑设计出来的。因此,Python代码没有任何特殊的语句结束标记(除了换行符),也可以完美地阅读和理解。

3
"has been thoroughly thought through" 翻译为中文是 "已经深思熟虑过了"。这三个词在日常对话中不常见。 - CLOVIS

0
正如其他答案所指出的那样,分号在这里没有任何作用。它是一个分隔符(例如print 1;print 2)。但它不像这样工作:def func():print 1;print 2;;print'Defined!';;是语法错误)。出于习惯,人们倾向于使用它(因为在诸如C/Java之类的语言中需要它)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接