Problem mit random

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
Wolfgang.Belau
User
Beiträge: 5
Registriert: Mittwoch 10. März 2010, 18:01
Wohnort: Bremen

Habe ein Problem mit random bei der Verwendung von pylab:

Code: Alles auswählen

import random
# importing pylab causes error, running python v2.5.2 or v2.6.4...
#from pylab import *
#
random.seed()
print "a random number below 11:", random.randint(0,11)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Na und was passiert beim Fehler?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
BlackJack

@Wolfgang.Belau: `pylab` enthält den Namen `random`:

Code: Alles auswählen

In [47]: pylab.random
Out[47]: <built-in method random_sample of mtrand.RandomState object at 0xb7d3b380>
Schönes Beispiel warum *-Importe problematisch sind.
Wolfgang.Belau
User
Beiträge: 5
Registriert: Mittwoch 10. März 2010, 18:01
Wohnort: Bremen

ok, hier die Meldung:

Code: Alles auswählen

File "C:\Documents and Settings\...\test_random.py", line 5, in <module>
    random.seed()
AttributeError: 'builtin_function_or_method' object has no attribute 'seed'
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wenn du das Problem immernoch hast, solltest du ganz drigendend BlackJacks Post lesen.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ähm, laut Fehlermeldung versuchts du seed aufzurufen, laut obigem Codeschnipsel randint... :roll:

Aber wie BlackJack sagte, ist dein random anscheinend die Funktion aus pylab, nicht das Modul aus der stdlib.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Wolfgang.Belau
User
Beiträge: 5
Registriert: Mittwoch 10. März 2010, 18:01
Wohnort: Bremen

Wie kann die random Funktion aus dem python Modul random korrekt referenziert werden, um sie von der pylab Version zu unterscheiden?

random.random.seed() löst das Problem nicht.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Nochmal: Der Import von pylab

Code: Alles auswählen

from pylab import *
importiert ebenfalls "random" und überschreibt damit das build-in random-Modul. Einfach den Sternchenimport vermeiden und nur das von pylab/Matplotlib importieren, was Du tatsächlich benötigst. Oder

Code: Alles auswählen

import pylab
ausführen und z. B. statt

Code: Alles auswählen

plot([1,2,3])
dies:

Code: Alles auswählen

pylab.plot([1,2,3])
Mehr zum Thema Module gibt es im Tutorial.

HTH
Christian
Wolfgang.Belau
User
Beiträge: 5
Registriert: Mittwoch 10. März 2010, 18:01
Wohnort: Bremen

Danke für den Hinweis!
...
User
Beiträge: 116
Registriert: Mittwoch 23. Dezember 2009, 20:22

Laut obigem Codeschnipsel sollte pylab aber keine Probleme gemacht haben.

Es scheint doch auskommentiert zu sein.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Das solltest du vielleicht nochmal lesen:

Code: Alles auswählen

# importing pylab causes error, running python v2.5.2 or v2.6.4...
#from pylab import *
Das Problem tritt naemlich erst dann auf, wenn man den Kommentar entfernt, was der Kommentar drueber ja auch sagt.
Antworten