web-dev-qa-db-fra.com

Python: que fait un point-virgule?

J'ai eu une fonction en ligne pour m'aider avec mon projet actuel et il y avait des points-virgules sur certaines des lignes. Je me demandais pourquoi? Est-ce pour casser la fonction?

def containsAny(self, strings=[]):
    alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'
    for string in strings:
        for char in string:
            if char in alphabet: return 1;
    return 0;

La fonction que j'ai mise en ligne avec peu de modification:

for string in strings:
    for char in string:
        if char in alphabet: return 1;

Est-ce que c'est en train de dire ce qui suit?

if char in alphabet:
    return 1
    break
39
Crispy

Le point-virgule ne fait rien dans le code que vous affichez.

Je suppose que c'est quelqu'un qui programme dans une autre langue (C, Java, ...) qui nécessite des points-virgules à la fin des déclarations et que c'est juste une habitude (ça m'arrive aussi parfois).

Si vous souhaitez mettre plusieurs instructions Python sur la même ligne, vous pouvez utiliser un point-virgule pour les séparer, voir ceci Python Doc :

Une suite est un groupe d'instructions contrôlées par une clause. Une suite peut être une ou plusieurs déclarations simples séparées par des points-virgules sur la même ligne comme en-tête, après les deux-points de l’en-tête, ou peut-être un ou plusieurs déclarations indentées sur les lignes suivantes

75
Levon

Le point-virgule ici ne fait rien. Les personnes issues de milieux C/C++/Java/(beaucoup d'autres langages) ont tendance à utiliser le point-virgule par habitude.

15
arshajii

Comme le soulignent d’autres réponses, le point-virgule ne fait rien. C'est un séparateur (par exemple print 1;print 2). Mais cela ne fonctionne pas comme ceci: def func():print 1;print 2;;print'Defined!' (;; est une erreur de syntaxe). Par habitude, les gens ont tendance à l'utiliser (comme cela est nécessaire dans des langages tels que C/Java ...).

0
EKons

Les programmeurs de C, C++ et Java sont habitués à utiliser un point-virgule pour indiquer au compilateur que c'est la fin d'une instruction, mais pour Python, ce n'est pas le cas.

La raison en est qu’en Python, les nouvelles lignes constituent un moyen non équivoque de séparer les lignes de code; c'est par conception, et la façon dont cela fonctionne a été minutieusement réfléchie. En conséquence, le code Python est parfaitement lisible et sans ambiguïté sans marqueurs de fin d’instruction spéciaux (à l’exception de la nouvelle ligne).

0
Abrar Ahmad