Seite 1 von 1
variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:15
von Champ8888
Ich habe versucht mein programm aus der letzten frage zu verfollständigen.
Code: Alles auswählen
from sys import *
from itertools import *
x="aba"
y = list(x)
shapes = ['a', 'b', 'c']
result = combinations_with_replacement(shapes, 3)
for i in result:
a = list(i)
print(a)
if a == y:
print("passwort: ", y)
exit()
Bei zum beispiel aab funktioniert es aber bei aba kommt als ausgabe:
['a', 'a', 'a']
['a', 'a', 'b']
['a', 'a', 'c']
['a', 'b', 'b']
['a', 'b', 'c']
['a', 'c', 'c']
['b', 'b', 'b']
['b', 'b', 'c']
['b', 'c', 'c']
['c', 'c', 'c']
Also die Buchstaben wiederholen sich an stelle 1 und 2 oder 2 und 3 aber nicht bei 1 und 3.
Hat jemand eine Idee wie man das beheben kann?
Danke schonmal
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:37
von Sirius3
@Champ8888: Sternchenimporte sind schlecht, weil man nicht kontrollieren kann, was denn da in den Namensraum geladen wird. Imporiere immer konkrete Namen. Statt `exit` solltest Du `break` benutzen. Was Du suchst ist `product`.
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:43
von Champ8888
Danke mit dem import tip.
Aber wenn ich diese kombinationen in verschiedenen längen ausgeben möchte, geht product ja nicht.
Gibt es da auch eine Lösung
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:54
von Sirius3
Das ging mit `combinations_with_replacement` genausowenig, Du mußt halt eine Schleife über die Längen machen.
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:55
von Champ8888
Aber dann müsste ich ja irgendwie die Liste erweitern oder?
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:58
von __deets__
Hast du das "repeat"-Argument in product nicht gesehen?
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 13:59
von Champ8888
Ja, aber nicht ganz verstanden
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 14:00
von __deets__
Die haben da ein Beispiel. Und wenn du es nicht verstehst, dann kannst du doch einfach mal damit rumspielen. Und schaun was passiert.
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 14:00
von Champ8888
Ok, vielen dank
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 14:39
von Champ8888
Ich habe es jetzt mit repeat versucht
d = product('ABCD', 'ABCD', repeat=1)
aber wenn ich für repeat 2 einsetze macht er es 2 mal und damit habe ich eine 4er kompi. Ich möchte aber kombinationen mit 1,2,3,4...
Vielleich weiß ja jemand wie das geht
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 14:59
von __deets__
Wenn du *zwei* Alphabete reingibst, und dann sagst, dass du die zweimal wiederholen willst, dann kommst du auf 2*2 = 4 Wiederholungen.
Woran kannst du jetzt wohl schrauben, wenn du repeat auf n setzen willst, und auch n Zeichen dabei rumkommen sollen?
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 15:02
von Champ8888
Ich habe versucht 1,5 einzusetzen aber es wird nicht akzeptiert
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 15:29
von __deets__
Und auf die Idee, nur ein statt zwei Alphabete reinzugeben bist du nicht gekommen? Das repeat wiederholt die uebergebenen Alphabete. Wenn du 1000 uebergibst, bekommst du auch 1000-Elementige Produkte. Wenn du das dann mal zwei nimmst, dann 2000.
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 17:46
von Champ8888
Dann habe ich aber das Problem dass wenn ich in der 1. liste a und in der 2. b habe nur ab und nicht ba rauskommt
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 18:06
von Sirius3
@Champ8888: Du hast aber nur EINE Liste.
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 18:53
von Champ8888
Ich meinte die beiden Teile der Liste
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 18:58
von Sirius3
Welche beiden Teile?
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 19:03
von Champ8888
result = product('ABCD', 'EFGH')
Die beiden Teile die mitenander verbunden werden
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 19:10
von Sirius3
Du brauchst nur eine Liste:
Re: variablen falsch?
Verfasst: Dienstag 10. April 2018, 19:12
von Champ8888
ohh
Vielen dank