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

Code: Alles auswählen

import random

random.randint(blabla)
oder

Code: Alles auswählen

from random import randint

randint(blabla)
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 :P

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!