Guten Tag,
Und zwar bin ich dabei eine Wabe zu Programmieren. Ich habe folgendes Problem:
- Jede Wabe muss mit einer zufälligen Farbe ausgefüllt sein
- Und jede Wabe soll beschriftet sein
Den folgenden Programm-Code habe ich schon angefangen:
import turtle
import random
for i in range (8):
lst=["red","green","orange","yellow","pink","brown","cyan","violet","gray"]
turtle.shape("turtle")
turtle.speed(10)
def hexagon():
for i in range(6):
turtle.forward(100)
turtle.left(60)
for i in range (6):
hexagon()
turtle.forward(100)
turtle.right(60)
turtle.exitonclick()
Vielen Dank für eure Hilfe!!!
Python Wabe
- __blackjack__
- User
- Beiträge: 13112
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@thomasfelixlöllgen: Eingerückt wird konventionell mit vier Leerzeichen pro Ebene.
Es wird sehr schnell sehr unübersichtlich wenn man das Hauptprogramm mit Funktionsdefinitionen auf Modulebene mischt. Das Hauptprogramm steht auch üblicherweise in einer Funktion.
Namen sollten nicht kryptisch abgekürzt werden und keine Grunddatentypen enthalten. Der Leser sollte am Namen ablesen können was der Wert dahinter bedeutet. `lst`? Das wäre besser `colors`.
Warum wird an den Namen `lst` in einer Schleife 8 mal die gleiche Liste gebunden? Das macht keinen Sinn.
Wenn man aus syntaktischen Gründen, beispielsweise in einer Schleife einen Namen schreiben muss, der aber dann gar nicht wirklich benötigt wird, hat sich der Name `_` als Konvention durchgesetzt. Dann weiss der Leser, ah das wird absichtlich nicht verwendet und ist kein Fehler.
Funktionen (und Methoden) werden üblicherweise nach Tatätigkeiten benannt, um sie besser von eher passiven Werten unterscheiden zu können. Also `draw_hexagon()` statt `hexagon()`.
Zwischenstand:
Was heisst denn beschriften in diesem Kontext?
Es wird sehr schnell sehr unübersichtlich wenn man das Hauptprogramm mit Funktionsdefinitionen auf Modulebene mischt. Das Hauptprogramm steht auch üblicherweise in einer Funktion.
Namen sollten nicht kryptisch abgekürzt werden und keine Grunddatentypen enthalten. Der Leser sollte am Namen ablesen können was der Wert dahinter bedeutet. `lst`? Das wäre besser `colors`.
Warum wird an den Namen `lst` in einer Schleife 8 mal die gleiche Liste gebunden? Das macht keinen Sinn.
Wenn man aus syntaktischen Gründen, beispielsweise in einer Schleife einen Namen schreiben muss, der aber dann gar nicht wirklich benötigt wird, hat sich der Name `_` als Konvention durchgesetzt. Dann weiss der Leser, ah das wird absichtlich nicht verwendet und ist kein Fehler.
Funktionen (und Methoden) werden üblicherweise nach Tatätigkeiten benannt, um sie besser von eher passiven Werten unterscheiden zu können. Also `draw_hexagon()` statt `hexagon()`.
Zwischenstand:
Code: Alles auswählen
#!/usr/bin/env python3
import random
import turtle
def draw_hexagon():
for _ in range(6):
turtle.forward(100)
turtle.left(60)
def main():
colors = [
"brown",
"cyan",
"gray",
"green",
"orange",
"pink",
"red",
"violet",
"yellow",
]
turtle.shape("turtle")
turtle.speed(10)
for _ in range(6):
draw_hexagon()
turtle.forward(100)
turtle.right(60)
turtle.exitonclick()
if __name__ == "__main__":
main()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman