Willkommen im Forum!
wie definiert man das Ende einer Methode?
Alles wird durch die Einrückung definiert. Ein Code-Block endet dort, wo der Nächste Code-Block mit höchstens derselben Einrückungstiefe beginnt. Beispiel:
Code: Alles auswählen
def eine_funktion(n):
mach_was_mit(n)
class EineKlasse(object):
def eine_methode(self, x):
mach_was_mit(x)
eine_klassen_variable = 'hallo'
eine_modul_variable = 'servus'
Hier endet eine_funktion dort, wo EineKlasse beginnt, und die wiederum endet dort, wo eine_modul_variable beginnt.
wie definiert man das Ende einer FOR-Schleife (eine Leere Zeile?)?
Ebenso wie bei den anderen Code-Blöcken. Wenn danach etweder die Datei endet oder danach etwas mit höchstens derselben Einrückungstiefe wie der Beginn der for-Schleife daherkommt, ist das das Ende des Blocks.
Übrigens ist deine Beispiel-Funktion recht unpythonisch. Besser wäre dies hier:
Code: Alles auswählen
def is_low_case_only(s):
return all(a == b for a, b in zip(s, s.lower())
Dabei bleiben Satzzeichen, Zahlen und white space allerdings unberücksichtigt. Wenn es tatsächlich darum geht, dass s nur aus den Buchstaben a-z besteht, dann vielleicht so:
Code: Alles auswählen
def is_low_case_only(s):
return all(c in string.ascii_lowercase for c in s)
In specifications, Murphy's Law supersedes Ohm's.