Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich möchte unter Python 2.6 einen Zufallsgenerator machen und diesen in ein Programm einbauen. Unter 3.0 funzt der folgende Code einwandfrei, aber was ist bitte zu 2.6 der Unterschied (bin eig 3.0 Programmieren)!?
import random #Habe auch schon from random import random versucht
random.seed()
a = random.randint(0.0,1.0)
b = random.randint(0.0,1.0)
c = random.randint(0.0,1.0)
Hast du doch, nur "randint" liefert halt nur integer, also entweder 0 oder 1 in deinem Fall.
Zudem ist "seed" Blödsinn, genauso wie das du bei "randint" floats übergibst.
Edit: Wenn ich einfach mal raten soll nehme ich an du suchst "random.random()" - dies würde dir eine float Zahl zwischen 0.0 und 1.0 geben
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
ok, danke, aber warum ist denn seed() sinnfrei?? man muss doch den Zufallsgenerator initialisieren, sonst kann es passieren das er immer diesselbe Zahl liefert!? (Brauche ihn mehrmals im prog)
Ich glaube davon kann BlackJack mittlerweile ein Lied singen, sie mal in der Forensuche unter random.seed() nach
Die Erklärung ist eigentlich schlicht, weil du als default-Parameter dort immer None übergibst und damit den Generator immer wieder mit dem selben Wert initialisiert.
Die Initialisierung erfolgt schon beim import.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
%> python2.6
Python 2.6.6 (r266:84292, Dec 12 2010, 15:15:09)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5 + " meter"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>
%> python3
Python 3.1.3 (r313:86834, Nov 28 2010, 10:01:07)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5 + " meter"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Da musst du aber ein besonders Python3 kennen.
Das Zauberwort heisst Stringformatierung.
P.S. Fehlermeldung sind hilfreich.
Und da das die Grundlagen sind wäre es ratsam, wenn du das Tutorial durcharbeiten würdest.
cofi hat geschrieben:Da musst du aber ein besonders Python3 kennen.
Das glaube ich langsam auch, bisher habe ich nicht einen Fehler auf Grund eines Versions unterschied gesehen.
Und wie cofi bereits im geposteten Traceback stehen hat, kommt der Fehler nur daher, das du eine Integer-Variable mit einem String addieren willst.
Du müsstest die Integer-Variable vorher in einen String umwandeln, es ist aber bei weitem besser die von cofi vorgeschlagene Stringformation zu nutzen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub