Marc M.: Python Random?

Hallo,

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

Split[2] ist definitiv 12, Split[0] definitiv 1. Wieso geht ein einfaches 1*random.randint(1,12) also nicht??

  1. Hallo,

    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

    Split[2] ist definitiv 12, Split[0] definitiv 1. Wieso geht ein einfaches 1*random.randint(1,12) also nicht??

    => falscher Typ
    Split[2] ist definitiv "12", Split[0] definitiv "1"

  2. 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!