Python Wabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
thomasfelixlöllgen
User
Beiträge: 1
Registriert: Mittwoch 12. Mai 2021, 12:22

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!!!
Benutzeravatar
__blackjack__
User
Beiträge: 13003
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:

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()
Was heisst denn beschriften in diesem Kontext?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten