Problem mit Funktionsaufruf

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.
Antworten
qweet
User
Beiträge: 119
Registriert: Freitag 2. September 2005, 21:26

Freitag 2. September 2005, 21:34

Hallo,

Ich habe folgenden Code:

Code: Alles auswählen

import randomclient
truerand(10, f)
Randomclient ist ein modul von random.org für echte Zufallszahlen.
Truerand ist eine definierte Funktion in diesem modul.
Jedoch erhalte ich trotzdem folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in -toplevel-
    truerand(num, fmt)
NameError: name 'truerand' is not defined
Warum? Und gibt es vielleicht ne Seite wo jeder zurückgegebene Fehler erklärt wird oder so was in der Art? Wär ich echt glücklich drüber :)

PS: Ich bin Anfänger!
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Freitag 2. September 2005, 21:39

Hi!

Das hatten wir heute schon mal :) Schau mal hier, vor allem ganz unten die Antworten von henning und jens.

Gruß, mawe
Gast

Samstag 3. September 2005, 10:57

Die Website hat mir ein kleines bischen weitergeholfen.
Bin mittlerweile so weit:

Code: Alles auswählen

import randomclient
randomclient.truerand
<function truerand at 0x00B45A70>
Denke mal das funktioniert fehlerfrei.
Truerand hat aber Parameter. Und wenn ichs so aufrufe:

Code: Alles auswählen

randomclient.truerand(10, f)
kommt Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in -toplevel-
    randomclient.truerand(10, f)
NameError: name 'f' is not defined
Aber es ist doch definiert :?: Jedenfalls laut dem Code des Moduls:

Code: Alles auswählen

# num is number of random numbers to fetch.
# format is b, o, d, or h for strings in that base
# format is n to return integers, or f for raw bytes.
# for all formats, except f, the data is returned as
# a list. bytes are returned as an unmolested string.

def truerand(num, fmt):

   if fmt == 'n':
      f = 'd'
   else:
      f = fmt

   s = '/cgi-bin/randbyte?nbytes=%d?format=%s' % (num, f)

   cxn = httplib.HTTPConnection('www.random.org')
   cxn.request('GET', s)

   ans = cxn.getresponse()

   if ans.status != 200:
      cxn.close()
      return []

   s = ans.read()
   cxn.close()

   if fmt == 'f':
      return s

   l = split(s)

   if fmt == 'n':
      return map(int, l)

   return l
Also bin dankbar für jede weitere Antwort ;)
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 3. September 2005, 11:01

f wird wohl von dir definiert werden müßen ;)

z.B.:

Code: Alles auswählen

f = "BlaBla"
randomclient.truerand(10, f) 

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Samstag 3. September 2005, 16:07

oh danke :roll:
ich hätte einfach randomclient.truerand(10, 'f') eingeben müssen... ;)
Antworten