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-virgule sur certaines lignes. Je me demandais pourquoi? Est-ce pour briser 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 eu en ligne avec peu de modifications:

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

Est-ce ^ en disant ce qui suit?

if char in alphabet:
    return 1
    break
37
demandé sur Peter Mortensen 2012-09-09 03:39:28

4 réponses

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

je soupçonne que c'est quelqu'un qui programme dans une autre langue (C, Java, ...) qui nécessite un point-virgule à la fin des énoncés et c'est juste une habitude (qui m'arrive parfois aussi).

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

une suite est un groupe d'énoncés contrôlés par une clause. Un suite être une ou plusieurs déclarations simples séparées par un point-virgule sur la même ligne comme l'en-tête, suivant les deux points de l'en-tête, ou il peut être un ou plusieurs déclarations en retrait sur les lignes suivantes

72
répondu Levon 2012-09-08 23:40:35

le point-virgule ici ne fait rien. Les gens qui viennent de C/C++/Java/(beaucoup d'autres langues) ont tendance à utiliser le point-virgule Par habitude.

14
répondu arshajii 2012-09-08 23:41:47

comme le font remarquer d'autres réponses, le point-virgule n'y 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). D'habitude, les gens ont tendance à l'utiliser (comme il est requis dans des langages tels que C/Java...).

0
répondu EKons 2016-04-14 14:56:06

les programmeurs de C, C++, et Java sont habitués à utiliser un point-virgule pour dire 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 sont un moyen non ambigu de séparer les lignes de code; c'est par conception, et la façon dont cela fonctionne a été soigneusement étudiée. En conséquence, le code Python est parfaitement lisible et sans ambiguïté sans marqueurs de fin de ligne Spéciaux.

0
répondu Abrar Ahmad 2018-09-10 21:55:27