Hallo,
Danke für die Antwort.
Mir sind List Comprehensions jetzt weitesgehend klar, nur verstehe ich dieses Kontrukt nicht (Zeile 4):
Code: Alles auswählen
import string
from random import *
characters = string.ascii_letters + string.punctuation + string.digits
password = "".join(choice(characters) for x in range(randint(8, 16)))
Es ist mir vollkommen klar, was hier passiert, nur die Syntax bringt mich durcheinander und zwar genauer dieser Teil:
>>> choice(characters) for x in range(randint(8, 16)) <<<
choice(characters) hat nämlich keinen Bezug zu der Variablen "x", für mich jedenfalls nicht. Ich dachte der Wert, der in der Liste Comprehension als erstes steht muss auch nach dem "for" in einer Art und Weise auftauchen, so dass er mit dem ersten Wert verknüpft ist, bzw. dieser in Bezug zu ihm steht. Wenn ich zB.
>>> choice(characters) 9<<< schreibe, erhalte ich eine Fehlermeldung.
Anscheinend muss man dieses Konstrukt auswendig lernen und hinnehmen, dass es so ist. Aber ich versuche halt lieber zu verstehen was hier passiert. Vielleicht kann mir jemand sagen, wie man das noch schreiben könnte, damit ich verstehe wie das Kontrukt tickt.
Ich wäre sehr dankbar, wenn mir jemand diese Syntax erklären kann.
Viele Grüße.