dedlfix: Python Random?

Beitrag lesen

Hi!

ich versuche gerade eine Zahl zu berechnen:
Split = ['1','7','12']
Ergebnis = Split[0] * random.randint(1,Split[2])

Jetzt müsste da doch 1 * eine Zufallszahl zwischen 1 und 12 berechnet werden, oder? Tut es aber nicht! Ich bekomme nur die Fehlermeldung: return self.randrange(a, b+1) Can't convert 'int' object to str implicitly

Wenn ich random.randint(1, '12') ausführen möchte, bekomme ich

return self.randrange(a, b+1)
  TypeError: cannot concatenate 'str' and 'int' objects

Der Code "return ..." ist ein Zitat aus der Bibliotheksfunktion random.randint() und ist Blackbox. Vermutlich hat aber b an der Stelle den Wert '12' und das ist ein String. Der Operator + versucht den String mit dem Integer zu verbinden und nicht die Zahl im String zu erkennen und dann zu rechnen.

Split[2] ist definitiv 12, Split[0] definitiv 1.

Gemäß deiner ersten Codezeile ist es nicht 12 sondern '12' und '1' statt 1.

Wieso geht ein einfaches 1*random.randint(1,12) also nicht??

Doch, das geht, aber das hast du nicht vorliegen. Selbst wenn du den Code so umschreibst, dass du eine Zufallszahl bekommst, ist es in Unterschied, ob du die mit einer Zahl oder einem String multiplizierst. Bei einem String kommt als Ergebnis nämlich ein String-Repeat raus, also der String wird so oft aneinandergehängt, wie der Int-Faktor aussagt.

Lo!