Definitionen

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.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Genau.

Code: Alles auswählen

from random import *
bedeutet dass Du alle Namen aus dem Namespace random (was ein Modul ist) in den lokalen Namespace importierst, ohne Rücksicht auf Verluste, unter anderem auch den Namen random, der eine Funktion ist. Das bedeutet dass der Name random in Deinem Skript nicht auf ein Modul zeigt, sondern auf eine Funktion gleichen Namens aus dem Modul random, und die Fehlermeldung bedeutet schlicht und ergreifend dass die Methode nun mal kein Attribut mit Namen shuffle hat.

Der Name random.shuffle (Modul random -> Name shuffle) ist danach einfach als shuffle zu erreichen, sprich Du brauchst nicht mehr random.shuffle zu schreiben, sondern schreibst einfach shuffle.

from <blah> import *

ist aus diesen Gründen in den allermeisten Fällen extrem unangebracht, weil die Übersicht flöten geht.

Probier also entweder random.shuffle durch shuffle(<blah>) zu ersetzen, oder mach anstelle von from random import * ein

Code: Alles auswählen

import random
was nur das Modul importiert, und dann kannst Du auch auf die Methode shuffle des Moduls random mittels random.shuffle zugreifen.
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

ah, danke!!

aber jetzt kommt direk die Nächste, was auch sonst!!

Wie kann ich, wenn ich eine Liste habe (z.B.

Code: Alles auswählen

Liste["a","b"]
die Funktionen a und b printen??

Code: Alles auswählen

def a()
hallo = 1
ciao = 2

def b()
hallo = 1
ciao = 2
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Ui. Erklär lieber erst mal was Du machen willst, dann kann man Dir eher helfen. Wie's ausschaut willst Du Dinge tun die ganz und gar nicht Pythonisch sind, bzw. kennst einfach die Datentypen die Python zur Verfügung stellt noch nicht ausreichend (nested-lists, etc.)...
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Also.....

Ich will einfach

Code: Alles auswählen

print Liste
machen und dann die in der Liste vorhandenden Glieder

Code: Alles auswählen

Liste[a,b]
geprintet werden, aber halt mit den Funktionen

Code: Alles auswählen

def a():
hi = 1
ciao = 2

def b():
ho = 2
cya = 1
geprintet wird, also: (in etwa so...)

Code: Alles auswählen

hi = 1
ciao = 2
ho = 2
cya = 1
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Wie bereits vorher schon gesagt: Die Variablen die Du in einer Funktion definierst sind außerhalb dieser Funktion nicht sichtbar, und vor allen Dingen sind Funktionsvariablen auch keine Elemente einer Liste...

Du willst wahrscheinlich einen Hash von Hashes:

Code: Alles auswählen

x = {"a":{"hi":1,"ciao":2},"b":{"ho":2,"cya":1}}
print x
print x["a"]
print x["b"]
print x["a"]["hi"]
...
Wenn das Dir nicht hilft, kann ich nur ein gutes Buch zu Python und besonders zu Datentypen empfehlen, weil man sowas nicht über ein Forum vermitteln kann (zumindest aus meiner Sicht)...
--- Heiko.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Da verweise ich gleich mal auf's Wiki: http://wiki.python.de/Tutorial#Tutorial Bitte mal die Seiten unter "Datenverarbeitung" duchschauen!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

hätte da noch nen problem!! (übrigens die seite ist gut, aber ein Mensch ist besser!!)

Code: Alles auswählen

p1 = raw_input("Name bitte: ")
pos = Liste2.index(p1)
Liste.extend(p1) 
del Liste2[pos]
Nur leder wird dann jeder Buchstabe, des Wortes, als eigenes Glied in die Liste eingefügt.

Bsp.: ['W', 'a', 'l', 'd'][/b]
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

.append fügt ein Element hinzu, .extend fügt Elemente eines Iterators (ein String ist ein Iterator über seine Buchstaben) einzeln hinzu.

Sprich, Du willst .append, und nicht .extend.
--- Heiko.
Drizzt
User
Beiträge: 22
Registriert: Mittwoch 8. März 2006, 15:47

*mal dazwischenspring*

Finde es im übrigen lobenswert, wie trotz "Anfängerfragen" geduldig und ohne "dummes" Kommentar geantwortet wird, (bin selbst erst seit heute hier registriert) wie es in vielen anderen foren oftmals zu lesen ist.
Auch wenn heute Python nicht nutzen konnte für meine Zwecke ;-)

Gruß
Alex
Kompottkin
User
Beiträge: 21
Registriert: Sonntag 26. Februar 2006, 03:09
Wohnort: Penzberg
Kontaktdaten:

Finde es im übrigen lobenswert, wie trotz "Anfängerfragen" geduldig und ohne "dummes" Kommentar geantwortet wird, (bin selbst erst seit heute hier registriert) wie es in vielen anderen foren oftmals zu lesen ist.
Ich vermute, daß das daher rührt, daß dieses Forum verglichen mit gewissen anderen eher spärlich besucht ist. Gäbe es mehr interessante Fragen, hätten die Mitglieder hier vermutlich weniger Zeit für lanweilige.

Viele Foren sind eben überlaufen. Wenn die Mitglieder dieser sich um eher langweilige Fragen, die jeder eigentlich auch durch ein wenig Eigenleistung selbst beantworten könnte, nicht kümmern, sondern sie im Gegenteil als lästig betrachten, ist das meines Erachtens nur allzu verständlich.
Antworten