Seite 2 von 2
Verfasst: Mittwoch 8. März 2006, 18:46
von modelnine
Genau.
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
was nur das Modul importiert, und dann kannst Du auch auf die Methode shuffle des Moduls random mittels random.shuffle zugreifen.
Verfasst: Mittwoch 8. März 2006, 18:53
von oscar15
ah, danke!!
aber jetzt kommt direk die Nächste, was auch sonst!!
Wie kann ich, wenn ich eine Liste habe (z.B.
die Funktionen a und b printen??
Verfasst: Mittwoch 8. März 2006, 19:06
von modelnine
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.)...
Verfasst: Mittwoch 8. März 2006, 19:13
von oscar15
Also.....
Ich will einfach
machen und dann die in der Liste vorhandenden Glieder
geprintet werden, aber halt mit den Funktionen
geprintet wird, also: (in etwa so...)
Verfasst: Mittwoch 8. März 2006, 19:18
von modelnine
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)...
Verfasst: Mittwoch 8. März 2006, 19:31
von jens
Da verweise ich gleich mal auf's Wiki:
http://wiki.python.de/Tutorial#Tutorial Bitte mal die Seiten unter "Datenverarbeitung" duchschauen!
Verfasst: Mittwoch 8. März 2006, 19:43
von oscar15
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]
Verfasst: Mittwoch 8. März 2006, 19:55
von modelnine
.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.
Verfasst: Mittwoch 8. März 2006, 21:01
von Drizzt
*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
Verfasst: Mittwoch 8. März 2006, 23:49
von Kompottkin
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.