Seite 1 von 1
buchstaben-hochzähl-algorithm erweitern
Verfasst: Mittwoch 15. Oktober 2014, 19:19
von HVTransformator
Hallo Leute,
ich habe folgenden algorithm aus dem internet kopiert der aa, ba, ca, da ... zählen soll.
leider funktioniert dieser algorithm nur für 3 stellen, ich brauche aber die möglichkeit die stellen einzustellen (2-8)
wie müsste ich den code erweitern?
code:
http://pastebin.com/Q9xfkxf4
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Mittwoch 15. Oktober 2014, 19:21
von EyDu
Das Stichwort lautet "Rekursion". Oder du machst es dir ganz einfach und schaust ins itertools-Modul.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Mittwoch 15. Oktober 2014, 19:25
von Sirius3
Ich hätte jetzt for-Schleife und Modulo gesagt.
@HVTransformator: was hast Du schon versucht?
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Mittwoch 15. Oktober 2014, 19:30
von HVTransformator
EyDu:
ohoh ihr erwartet nicht das ich die schule beendet habe usw. ? oder ?
ich bin 10 Klasse den Rekursions Scheiß versteh ich nicht.
Sirius3:
nein ich habe es nicht versucht, du musst wissen das ich diese schleife selber nicht verstehe. ich verstehe nur das sie sich immer wieder von selbst aufruft, was heißt das sie unendlich läuft,
da sie nur 3 stellen darstellen kann fängt sie wieder bei 2 an und macht das ganze nochmal. Warum das passiert und wie weiß ich nicht. Also habe ich keine Ahnung wo ich das Modulo oder die for-schleife anbringen soll.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 15:55
von HVTransformator
Gut,
Fragen wir nochmal anders,
was bedeutet diese Zeile:
und was bedeutet diese Zeile:
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 15:59
von BlackJack
Das sind
List Comprehensions. Welches Tutorial oder Buch verwendest Du denn um Python zu lernen?
Edit: Wobei die erste eher unsinnig ist, da könnte man auch einfach ``a = list(letters)`` für schreiben.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 16:13
von HVTransformator
ich habe mal vor 3 Jahren einen Python Kurs belegt, damals war ich 12.
momentan habe ich neben mir eine "Python Gepackt (
http://www.amazon.de/Python-GEPACKT-Mic ... 3826607244)" aber ich glaube da kommen
List Comperehensions nur kurz vor und vor allem nicht so kompliziert nur so was wie unten. (ich habe es eher als Nachschlagewerk und habe nur bis Kapitel 4 gelesen weil ich keine zeit hatte)
Was Comprehensions sind weiß ich (Aus dem Buch) man schreibst z.b.
Die liste besteht dann aus allen Buchstaben.
ich habe dies hier versucht: (um es zu verstehen)
Code: Alles auswählen
letters = list("123456")
a = [x+i for i in letters for y+x in letters for y in letters]
aber ich kriege eine fehlermeldung. warum?
sie lautet:
can't assign to opperator.
was das bedeutet muss ich nicht fragen, ich versteh nur nicht wo ich versucht habe einem Operator etwas zuzuweisen.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 16:49
von BlackJack
@HVTransformator: Zwischen ``for`` und ``in`` muss etwas stehen dem man einen Wert zuweisen kann. Und einer Addition kann man nichts zuweisen:
Code: Alles auswählen
In [5]: x + y = 42
File "<ipython-input-5-1c816ec557a2>", line 1
x + y = 42
SyntaxError: can't assign to operator
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 17:08
von HVTransformator
hmm...
Code: Alles auswählen
a = [x+i for i in letters y+x for x in letters for y in letters]
aus deiner antwort würde ich denn schluss ziehen dass das hier richtig ist,
aber ein syntax error bei "y+x"
jetzt bin ich komplett verwirtt
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 17:16
von BlackJack
@HVTransformator: Naja da steht ``letters`` nur durch ein Leerzeichen getrennt vor ``y+x``. Was soll das denn bedeuten? Das macht keinen Sinn.
Vielleicht solltest Du nicht versuchen zu viel in eine LC zu packen.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 17:36
von HVTransformator
LC meint line oder so. oder?
wie kann ich das ganze den in 2 Zeilen packen?
es soll bedeuten, das das ganze nicht nur 2 mal durchgeführt wird, sondern 3 mal.
nochmal aufs stichwort rekursion zurück, ich seh da nichts sich sebst aufrufendes.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 18:04
von Sirius3
@HVTransformator: da wird auch nichts rekursiv aufgerufen und ich würde für das Problem auch keine Rekursion verwenden. Wenn Dir LCs zu kompliziert sind, dann versuch eben erst eine Lösung ohne LC.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 18:17
von HVTransformator
ich habe ein bisschen gesucht und nichts gefunden was das ganze ohne LCs löst, und nicht 50 Zeilen hat.
übrigens habe ich das ganze mal ohne mein Login laufen gelassen und dann geht es sehr wohl über 3 stellen hinaus.
ist der aufruf:
falsch?
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 18:49
von Sirius3
@HVTransformator: Programmieren heißt ja auch nicht, suche solange bis Du die Lösung im Internet gefunden hast. Ein bißchen selber nachdenken hilft vielleicht. Das Problem an sich ist ja nicht so kompliziert.
Re: buchstaben-hochzähl-algorithm erweitern
Verfasst: Donnerstag 16. Oktober 2014, 18:58
von HVTransformator
oh gott ich hasse mich.
nur weil ich einen code mit dem modul itertools gefunden habe der 50 zeilen lang ist,
sollte man nicht alle von der suche ausschließen.