Seite 1 von 1
ImportError: cannot import name Random
Verfasst: Freitag 17. September 2004, 11:54
von pr0stAta
So halli hallo :>
lerne gerad python in der schule und bin daher noch neuling.
habe versucht ein kleines programm zu schreiben, das als
zahlengenerator fungiert , wobei man natürlich die zahl finden muss :>
mein versuch:
Code: Alles auswählen
import string, random
from random import randint
def zufall():
print "Finden Sie die Zahl zwischen 1 und 100"
nummer = randint(1,100)
nummer = str(nummer)
eingabe = raw_input()
if eingabe > number:
print "Deine Zahl ist zu gross"
if eingabe < number:
print "Deine Zahl ist zu klein"
if eingabe == number:
print "Richtig"
zufall()
wenn ich das programm starte kommt allerdings die fehlermeldung
aus dem titel: ImportError: cannot import name Random
wäre über nen tip sehr erfreut :>
mfg prosta
Verfasst: Freitag 17. September 2004, 12:11
von rayo
beim laden der modulen entweder
oder
sonst importierst du ja 2 Mal
gruss
Verfasst: Freitag 17. September 2004, 12:36
von Dookie
Hi prosta,
die erste zeile
import string, random kannst gleich weglassen.
Könntest Du die ganze Fehlerausgabe mal hier posten, hast du auch auf Groß/Kleinscheibung geachtet, ein Modul Random gibts wirklich nicht, aber dafür ein Modul random.
Im Script würde ich dann die Eingabe in einen Integer umwandeln statt der Nummer in einen String und bei fehlerhafter Eingabe das ganze nochmal eingeben lassen, auch die Abfrage ob die Zahl stimmt hab ich etwas optimiert:
Code: Alles auswählen
from random import randint
def zufall():
print "Finden Sie die Zahl zwischen 1 und 100"
nummer = randint(1,100)
while 1: #Endlosschleife
eingabe = raw_input()
try: # versuche Eingabe in Integer zu wandeln
eingabe = int(eingabe)
except:
print "Fehlerhafte Eingabe %s ist keine Zahl!" % eingabe
continue # nochmal eingeben lassen
break # alles ok, Zahl wurde eingegeben. Schleife beenden
if eingabe > number:
print "Deine Zahl ist zu gross"
elif eingabe < number:
print "Deine Zahl ist zu klein"
else:
print "Richtig"
zufall()
Gruß
Dookie
Verfasst: Freitag 17. September 2004, 12:39
von pr0stAta
also erstmal danke für eure beiträge. dookie ich wollte gerad die
gesamte fehlermeldung zeigen, denn dein programm geht bei
mir auch nicht.
C:\test>zufall.py
Traceback (most recent call last):
File "C:\test\zufall.py", line 1, in ?
from random import randint
File "C:\Python23\lib\random.py", line 2, in ?
File "C:\Python23\lib\cgi.py", line 40, in ?
import mimetools
File "C:\Python23\lib\mimetools.py", line 6, in ?
import tempfile
File "C:\Python23\lib\tempfile.py", line 33, in ?
from random import Random as _Random
ImportError: cannot import name Random
hmm liegt wohl an den zu includierten dateien aber sonst keine ahnung :>
diese fehler kamen bei meiner sowie bei deiner version
Verfasst: Freitag 17. September 2004, 12:43
von oenone
oder:
Code: Alles auswählen
import random
randint = random.randint
randint(foo,bar)
aber das sollte nicht die ursache fuer die fehlermeldung sein..
@pr0stAta: du hast nicht zufaellig dein programm "random.py" genannt, oder so aehnlich ?
wenn ja, dann benenn sie um.. python guckt als erstes im aktuellen verzeichnis (ausser du hast sys.path manipuliert).
auf bald
oenone
[edit] bah.. war mal wieder viel zu langsam..
Verfasst: Freitag 17. September 2004, 12:48
von pr0stAta
arg ok ich hab den fehler dank dir oenone :>
ich hatte die datei zuerst random.py genannt, dann aber umbenannt, doch war noch eine temp datei davon im ordner die random hieß...
nun geht es :> danke für den tip
mfg prosta
Verfasst: Freitag 17. September 2004, 13:02
von pr0stAta
und nochmal falls es wen interessiert mein fertiges prog
was nun auch geht
Code: Alles auswählen
from random import randint
def zufall():
print "Finden Sie die Zahl zwischen 1 und 100"
nummer = randint(1,100)
count = 0
while count != 1 :
eingabe = raw_input()
eingabe = int(eingabe)
if eingabe > nummer:
print "Deine Zahl ist zu gross"
count = 2
if eingabe < nummer:
print "Deine Zahl ist zu klein"
count = 2
if eingabe == nummer:
print "Richtig"
count = 1
zufall()
edit by Dookie: Hab das Script in Pythontags gesetzt und die Einrückungen gefixt. Stell Deinen Editor am Besten so ein, daß er immer Leerzeichen statt Tabulatoren verwendet!