Funktion mit unterschiedlicher Anzahl von For-Loops (Python)

Mein problem ist schwer zu erklären.

Möchte ich eine Funktion erstellen, enthält geschachtelte for-Schleifen
die Menge, die proportional zu einem argument an die Funktion übergeben.

Hier ist ein hypothetisches Beispiel:

Function(2)

...würde bedeuten...

for x in range (y):
    for x in range (y):
        do_whatever()

Anderes Beispiel...

  Function(6)

...würde bedeuten...

for x in range (y):
    for x in range (y):
        for x in range (y):
            for x in range (y):
                for x in range (y):
                    for x in range (y):
                        whatever()

Den Variablen der for-Schleife (y) sind, NICHT verwendet in der verschachtelten code.

Ihr Erster Gedanke könnte sein, erstellen Sie EINE for-Schleife, mit einem Bereich, der der macht das number-argument...
DAS KANN NICHT FUNKTIONIEREN, weil das Produkt wäre RIESIG. Ich habe Instanzen erforderlich, wo gibt es 8 verschachtelte for-Schleifen.
Das Produkt ist zu groß für einen Bereich in einer for-Schleife.

Gibt es andere Argumente brauchte, um an die Funktion übergeben werden, aber ich kann damit umgehen, dass mich.

Hier ist der code
(es schafft die Schneeflocke Fraktale)

from turtle import *
length = 800
speed(0)

def Mini(length):
    for x in range (3):
        forward(length)
        right(60)

penup()
setpos(-500, 0)
pendown()   

choice = input("Enter Complexity:")

if choice == 1:
    for x in range (3):
        forward(length)
        left(120)

elif choice == 2:
    for x in range (3):
        Mini(length/3)
        left(120)

if choice == 3:
    for x in range (6):
        Mini(length/9)
        right(60)
        Mini(length/9)
        left(120)

if choice == 4:
    for y in range (6):
        for x in range (2):
            Mini(length/27)
            right(60)
            Mini(length/27)
            left(120)
        right(180)
        for x in range (2):
            Mini(length/27)
            right(60)
            Mini(length/27)
            left(120)

if choice == 5:
    for a in range (6):
        for z in range (2):
            for y in range (2):
                for x in range (2):
                    Mini(length/81)
                    right(60)
                    Mini(length/81)
                    left(120)
                right(180)
                for x in range (2):
                    Mini(length/81)
                    right(60)
                    Mini(length/81)
                    left(120)
            right(180)
        right(180)

if choice == 6:
    for c in range (6):
        for b in range (2):
            for a in range (2):
                for z in range (2):
                    for y in range (2):
                        for x in range (2):
                            Mini(length/243)
                            right(60)
                            Mini(length/243)
                            left(120)
                        right(180)
                        for x in range (2):
                            Mini(length/243)
                            right(60)
                            Mini(length/243)
                            left(120)
                    right(180)
                right(180)
            right(180)
        right(180)

if choice == 7:
    for a in range (6):
        for b in range(2):
            for c in range (2):
                for d in range (2):
                    for e in range (2):
                        for f in range (2):
                            for y in range (2):
                                for x in range (2):
                                    Mini(length/729)
                                    right(60)
                                    Mini(length/729)
                                    left(120)
                                right(180)
                                for x in range (2):
                                    Mini(length/729)
                                    right(60)
                                    Mini(length/729)
                                    left(120)
                            right(180)
                        right(180)
                    right(180)
                right(180)
            right(180)
        right(180)

Ich würde schätzen jede Hilfe, die Sie mir geben können überhaupt
obwohl, wenn Sie eine andere Methode vorschlagen (z.B. Rekursion),
bitte nicht nur den code einzufügen; stattdessen schlägt einige Ideen, könnte mich in die richtige Richtung.

(Der Algorithmus ist für ein Spezialist Mathematik Zuordnung)


Spezifikationen:
Python 2.7.1
Turtle
Im LEERLAUF
Windows7

InformationsquelleAutor der Frage Anti Earth | 2011-08-25

Schreibe einen Kommentar