In Python, wo Ihr eingerückter Block endet, ist genau dort, wo Ihr Block endet. So zum Beispiel ein wenig einfacher Code:
myName = 'Jhon'
if myName == 'Jhon':
print(myName * 5)
else:
print('Hello')
Nun, wenn Sie diesen Code ausführen (stellen Sie sicher, dass es von einem separaten Modul auszuführen, nicht von der interaktiven Eingabeaufforderung), wird es gedruckt ‚Jhon‘ fünf mal (beachte, dass Python die Objekte genau so behandelt, wie sie spezifiziert sind, es wird nicht einmal versuchen, die Variable myName
in eine Zahl für die Multiplikation zu konvertieren) und das war's. Dies liegt daran, dass der Codeblock innerhalb des if-Blocks nur ausgeführt wird. Beachten Sie, dass, wenn das Schlüsselwort else
irgendwo anders als nur unter die if-Anweisung gesetzt wurde oder wenn Sie die Verwendung von Tabulatoren und Leerzeichen gemischt hatten, Python einen Fehler auslösen würde.
nun in Ihrem Code,
for i in range(0,numClass):
if breaks[i] == 0:
classStart = 0
else:
classStart = dataList.index(breaks[i])
classStart += 1
See, wo der Einzug von for
‚s Codeblock beginnt? Eine Registerkarte, also alles, was nach der for
-Anweisung eingerückt ist, wird innerhalb des For-Blocks liegen. Jetzt, offensichtlich, ist die if
Aussage innerhalb der for
Aussage, also ist es innerhalb der for
Aussage. Nun gehen wir zur nächsten Zeile, classStart = 0
- dies ist eingerückt zwei Registerkarten aus der for
-Anweisung und eine Registerkarte aus der if
Anweisung; so ist es innerhalb der if
Anweisung und innerhalb der für Block. In der nächsten Zeile haben Sie ein else
Schlüsselwort eingerückt nur eine Registerkarte aus der for
-Anweisung, aber nicht zwei Registerkarten, so dass es innerhalb der for
Anweisung und nicht innerhalb der if
Anweisung ist.
Betrachten geschweiften Klammern wie diese setzen, wenn Sie in einer anderen Sprache (n) vor codiert haben:
for i in range(0,numClass)
{
if breaks[i] == 0
{
classStart = 0
}
else
{
classStart = dataList.index(breaks[i])
classStart += 1
}
}
Die einfachen Unterschiede sind, dass Sie nicht Klammern setzen für Ihre Ausdrücke sind erforderlich, es sei denn, Sie wollen Um Vorrangregeln für Operatoren zu erzwingen, benötigen Sie diese geschweiften Klammern nicht, sondern gleichen Sie sie gleichmäßig ein.
Cool, danke. Kannst du mir auch sagen, was der Doppelstern (**) in dieser Zeile bedeutet? sqDev2 = (classList [j] -classMean) ** 2 – tmighty
bedeutet "Macht von", äquivalent zu^in vielen Sprachen. ** 2 (quadriert), ** 3 (kubisch) – Jblasco
Es bedeutet "Macht", oder was in einigen Sprachen ist '^' (Python verwendet das für bitweises xor). –