Tuples und Dictionaries
Was ist daran so verkehrt, wenn man mal eben nicht zu jene gehört, dich sich mit IPython nicht anfreunden wollen, und gerne über Editor, Notepad++, IDLE und der normalen PythonShell arbeiten wollen? Für mich ist es eben eine angenehme Umgebung, weil ich somit für mich einen kleinen Einstieg in die Materie bekommen habe, und zwar weiß cih schon mal, wie man mit IDLE arbeitet, die Codes ausführt etc. Und ich denke, es ist nicht verkehrt, wenn sich erstmal darauf aufbaut. Ich mag mich eben nicht von einem Punkt zum nächst schicken lassen, nur weil es unter euch so Gang und Gäbe ist. Darüber möchte ich jetzt auch nicht diskutieren. Punkt, und aus.
Sophus
Sophus
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Meine Güte noch mal... deine ganzen Widerworte hier zu tippen und seit zig Postings alles immer in Frage stellen hat doch verdammt noch Mal länger gedauert, als einmal eine Comanndo-Shell (unter Windows cmd oder powershell) zu öffnen, "python" ein zu tippen und dann einige der Dinge auszuprobieren!
Du machst auf mich nicht den Eindruck eines Lehrers, sondern eher den eines aufmüpfigen, rebellischen Schülers, der *keinen* Ratschlag von erfahrenen Menschen akzeptieren will.
So wirst Du Dich als Einzelkämpfer durchschlagen müssen - nur frage dich einmal: Was suchst Du hier im Forum? Wirklich Hilfe oder eher Streit? Hast Du den Eindruck, dass Du hier mit Deiner Art "ankommst"? Würdest Du Dich im echten Leben auf einer "Party" auch so verhalten? Magst Du es, dermaßen anzuecken?
Ich habe einfach nicht den Eindruck, dass Du wirklich Interesse an Hilfe hast und den Rat von Leuten suchst. Du willst eher provozieren oder suchst tatsächlich Bestätigung dafür, wie toll doch Dein Vorgehen ist. Beides wirst Du hier auf Dauer nicht bekommen fürchte ich... zumindest nicht von mir. Ich verabschiede mich, bis Du auf mich einen besseren Eindruck machst. Eine zweite Chance hat jeder verdient, aber aktuell haben wir beide keinen Nutzen von weiterer Kommunikation
Du machst auf mich nicht den Eindruck eines Lehrers, sondern eher den eines aufmüpfigen, rebellischen Schülers, der *keinen* Ratschlag von erfahrenen Menschen akzeptieren will.
So wirst Du Dich als Einzelkämpfer durchschlagen müssen - nur frage dich einmal: Was suchst Du hier im Forum? Wirklich Hilfe oder eher Streit? Hast Du den Eindruck, dass Du hier mit Deiner Art "ankommst"? Würdest Du Dich im echten Leben auf einer "Party" auch so verhalten? Magst Du es, dermaßen anzuecken?
Ich habe einfach nicht den Eindruck, dass Du wirklich Interesse an Hilfe hast und den Rat von Leuten suchst. Du willst eher provozieren oder suchst tatsächlich Bestätigung dafür, wie toll doch Dein Vorgehen ist. Beides wirst Du hier auf Dauer nicht bekommen fürchte ich... zumindest nicht von mir. Ich verabschiede mich, bis Du auf mich einen besseren Eindruck machst. Eine zweite Chance hat jeder verdient, aber aktuell haben wir beide keinen Nutzen von weiterer Kommunikation
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Na toll. Das regt mich schon wieder auf. Meine Grundfrage, war, was es sich mit Tupels und Dictionaries auf sich hat, und Dank euch, die dann erstmal über eure wunderbare Shell unterhalten habt, dachte ich mir "Installiere es mal fix" und darf mich jetzt daran rumspielen, weil es irgendwie nicht starten will. Klasse. Da hat man sich schon mal in seine eigene Umgebung eingearbeitet, und da musst ihr um die Ecke kommen (wenn auch viellecht als gut gemeinter Rat, aber der Schuss dabei dennoch nach hinten losging), und meint erstmal, dass ich mich mit der IPython-Shell auseinandersetzen soll. Großes Kino. Wieder mal vergeudete 10 Minuten, nur weil ich am Ende nachgab, das versuchte zu installieren, am Ende scheiterte und mich fragte, wieso ich nicht einfach auf mich selbst gehört habe und in gewohnter Manier in meiner Umgebung geblieben bin. Weitere Ratschläge bezüglich der Umgebungen möchte ich also nicht mehr lesen. Jeder macht es wie er es will, am Ende ist das Ziel entscheidend. Wenn ich also konkrete Fragen habe, erwarte ich auch nur konkrete Antworten.
Danke.
Sophus
Danke.
Sophus
@Sophus: Ähm, keiner will Dich zu IPython zwingen, Du hast vorher ja auch die Shell IDLE und die normale Python-Shell in einem Terminalfenster schon abgelehnt. Du möchtest Python lernen, aber nichts so machen wie man das üblicherweise macht. Also willst Du eigentlich gar nicht Python lernen. So kommt das jedenfalls rüber. :K
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@Sophus: Der erste Beitrag, wo jemand (Hyperion) dir empfahl, etwas in einer Shell einzugeben, war dieser hier: http://www.python-forum.de/viewtopic.ph ... 86#p259286. Bis dahin hatte auch niemand gesagt, du solltest IPython installieren. Das erste Mal, dass jemand (wieder Hyperion) IPython ins Spiel brachte, war dieser Beitrag: http://www.python-forum.de/viewtopic.ph ... 00#p259300. Dort lese ich allerdings nur, dass Hyperion eben IPython verwendet, aber nicht, dass du das auch unbedingt tun musst. Dort steht: "Du kannst es ja mal ausprobieren". Im Kontext ist es nicht entscheidbar, ob Hyperion meinte "Du kannst ja mal IPython ausprobieren" oder "Du kannst ja mal ausprobieren, den Code in einer Shell deiner Wahl einzugeben". Vor die Wahl gestellt, würde ich erstmal letzteres machen. Hast du das schon getan? Für jemand, der nur ungern theoretisch, dafür aber lieber praktisch lernen möchte, wäre das doch eine ideale Vorgehensweise, oder nicht? Was kommt dabei raus, wenn du das hier in eine Python-Shell eingibst:?
Code: Alles auswählen
myArray = ['Mike','Peter','Anna']
type(myArray)
In specifications, Murphy's Law supersedes Ohm's.
Diese lautlosen Unterstellungen immer. Ich arbeite mit IDLE, Notepad++ und Python Shell, und fertig. Ich denke, damit bin ich auf dem guten Wege Python zu lernen oder sehe ich das jetzt falsch? Nein? Ja, dann ist ja alles gut.BlackJack hat geschrieben:@Sophus: Ähm, keiner will Dich zu IPython zwingen, Du hast vorher ja auch die Shell IDLE und die normale Python-Shell in einem Terminalfenster schon abgelehnt. Du möchtest Python lernen, aber nichts so machen wie man das üblicherweise macht. Also willst Du eigentlich gar nicht Python lernen. So kommt das jedenfalls rüber. :K
Meine Python Shell sagt einfach:pillmuncher hat geschrieben:@Sophus: Der erste Beitrag, wo jemand (Hyperion) dir empfahl, etwas in einer Shell einzugeben, war dieser hier: http://www.python-forum.de/viewtopic.ph ... 86#p259286. Bis dahin hatte auch niemand gesagt, du solltest IPython installieren. Das erste Mal, dass jemand (wieder Hyperion) IPython ins Spiel brachte, war dieser Beitrag: http://www.python-forum.de/viewtopic.ph ... 00#p259300. Dort lese ich allerdings nur, dass Hyperion eben IPython verwendet, aber nicht, dass du das auch unbedingt tun musst. Dort steht: "Du kannst es ja mal ausprobieren". Im Kontext ist es nicht entscheidbar, ob Hyperion meinte "Du kannst ja mal IPython ausprobieren" oder "Du kannst ja mal ausprobieren, den Code in einer Shell deiner Wahl einzugeben". Vor die Wahl gestellt, würde ich erstmal letzteres machen. Hast du das schon getan? Für jemand, der nur ungern theoretisch, dafür aber lieber praktisch lernen möchte, wäre das doch eine ideale Vorgehensweise, oder nicht? Was kommt dabei raus, wenn du das hier in eine Python-Shell eingibst:?Code: Alles auswählen
myArray = ['Mike','Peter','Anna'] type(myArray)
Also ist das, was ich bisher als Array gehalten habe, im Grunde ein Listen von Elementen? In dem Beispiel wurde Mike, Peter und Anna gelistet?<type 'list'>
@Sophus: *Du* hast geschrieben Du schreibst es lieber im Editor und führst es dann aus, auf den Vorschlag eine interaktive Shell zu verwenden. Und jetzt unterstelle ich Dir das ”lautlos”?
Die Liste besteht aus 3 Strings. Diese Strings haben die Inhalte 'Mike', 'Peter' und 'Anna' (ohne die Anführungszeichen, denn die kennzeichnen nur einen String, gehören aber nicht zum Inhalt).Sophus hat geschrieben:Also ist das, was ich bisher als Array gehalten habe, im Grunde ein Listen von Elementen? In dem Beispiel wurde Mike, Peter und Anna gelistet?
Um die Daten auszugeben kannst du über die Inhalte dieser Liste iterieren.
Code: Alles auswählen
data = ['Mike', 'Peter', 'Anna']
for name in data:
print(name)
Ich danke dir Du schriebst, dass man es ohne Anführungszeichen tun soll. Natürlich habe ich es auch gleich mal mit Anführungszeichen ausprobiert:/me hat geschrieben:Die Liste besteht aus 3 Strings. Diese Strings haben die Inhalte 'Mike', 'Peter' und 'Anna'.Sophus hat geschrieben:Also ist das, was ich bisher als Array gehalten habe, im Grunde ein Listen von Elementen? In dem Beispiel wurde Mike, Peter und Anna gelistet?
Um die Daten auszugeben kannst du über die Inhalte dieser Liste iterieren.name bekommt jetzt in der Schleife der Reihe nach jedes Element der Liste zugewiesen (durch das for...in) und wird durch print ausgegeben.Code: Alles auswählen
data = ['Mike', 'Peter', 'Anna'] for name in data: print(name)
Code: Alles auswählen
data = ["Mike", "Peter", "Anna"]
for name in data:
print(name)
Nein, nicht wirklich. Ich schrieb, dass die Anführungszeichen nicht Teil des Stringinhalts sind. Sie sind sehr wohl Teil der Stringdefinition im Programmcode.Sophus hat geschrieben:Du schriebst, dass man es ohne Anführungszeichen tun soll.
Python erlaubt dabei sowohl einfache wie auch doppelte Anführungszeichen. Die Definitionsmöglichkeiten für Strings findest du sehr weit vorne im offiziellen Tutorial im Kapitel Strings.
[quote="Hyperion"]
Du hast in Deinem Code bisher *kein* Objekt verändert, auch kein Dictionary
Beispiel:
Damit ich Hyperions Beispiel verstehe, kopiere ich sie nochmal, und versehe sie mit meinen Kommentaren, sowie wie ich eben mit meinem Verständnis komme. Auf weitere Ergänzungen würde ich mich freuen - das heiß ERKLÄRUNGEN und keine Belehrungen, von wegen, mir fehlen noch Grundlagen. Da das geklärt ist, beginne ich einfach mal.
Du hast in Deinem Code bisher *kein* Objekt verändert, auch kein Dictionary
Beispiel:
Code: Alles auswählen
# Listen kennen z.B. "append"
l = [1, 2, 3]
# jetzt *verändern* wir das Objekt!
l.append(4)
print(l)
> [1, 2, 3, 4]
# Tupel haben nichts, um den Inhalt zu ändern!
t = (1, 2, 3)
# Dictionaries lassen sich auch erweitern:
d = {"foo": 42}
d["bar"] = 99
print(d)
> {'foo': 42, 'bar': 99}
Code: Alles auswählen
# Listen kennen z.B. "append"
l = [1, 2, 3] # Hier wird eine Liste erzeugt. Vorhanden sind hier drei Elemente
# jetzt *verändern* wir das Objekt!
l.append(4) # Hier werden die Elemente in die Liste geladen. Aber was sagt hier die 4?
# Ich weiß, dass die 4 ein Argument sein soll, aber wieso die 4?
# Soll es heißen, anstatt 3 sollen nun 4 Elemente in die Liste geladen werden?
print(l) # Hier wird die Liste in der Konsole / im Terminal ausgegeben.
> [1, 2, 3, 4] # Da vorher aber 3 Elemente in die Liste geladen wurde, aber man 4
# Elemente in die Liste laden will, hat man hier nun 4 Elemente eingegeben?
# Tupel haben nichts, um den Inhalt zu ändern!
t = (1, 2, 3) # Hier handelt es sich um einen Tupel.
# Dictionaries lassen sich auch erweitern:
d = {"foo": 42} # Hier ist foo nur ein String, eben weil es in Anführungszeichen steht.
# Was aber besagt die 42 und der Doppelpunkt davor? Ich weiß,
# das im Kontext einer If-Bedingung ein Doppelpunkt beim Else: die
# Schleife beendet. Den Doppelpunkt setzt man auch bei einer Funktion "def blahblah ():".
d["bar"] = 99 # Was ist d["bar"]? Was mich hier verwundert, ist, dass ein Gleichheitszeichen zwischen
# d und ["bar"] fehlt und dahinter = 99 steht. Was besagt das hier?
print(d) # print-Anweisung
> {'foo': 42, 'bar': 99} # Und hier weiß ich auch nicht wirklich weiter.
@Sophus: Du hast angeblich in VB6 programmiert und hast auf Lehramt studiert, und stellst dann *solche* Fragen? Ernsthaft? Der Trick beim trollen ist es nicht zu sehr zu übertreiben.
Sollten die Fragen tatsächlich ernst gemeint sein, dann lass das Programmieren bleiben. Das ist ganz offensichtlich nichts für Dich. Und such Dir professionelle Hilfe bei Deinen sonstigen Problemen.
Sollten die Fragen tatsächlich ernst gemeint sein, dann lass das Programmieren bleiben. Das ist ganz offensichtlich nichts für Dich. Und such Dir professionelle Hilfe bei Deinen sonstigen Problemen.
Guten Morgen,BlackJack hat geschrieben:@Sophus: Du hast angeblich in VB6 programmiert und hast auf Lehramt studiert, und stellst dann *solche* Fragen? Ernsthaft? Der Trick beim trollen ist es nicht zu sehr zu übertreiben.
Sollten die Fragen tatsächlich ernst gemeint sein, dann lass das Programmieren bleiben. Das ist ganz offensichtlich nichts für Dich. Und such Dir professionelle Hilfe bei Deinen sonstigen Problemen.
vielen Dank für deine rührende Worte. Deine Hilfsbereitschaft und deine sozialen Kompetenzen sind unübertrefflich. Sollte es jemals soweit mit mir sein, werde ich dich natürlich zu aller erst fragen. Immerhin bist du offensichtlich Koryphäe auf diesem Gebiet und kennst auch sehr gute Adressen. Seien wir doch mal ehrlich: Ich kann dich absolut verstehen, dass dich das hier alles etwas langweilt, um nicht zu sagen, schon nervt. Schau dich doch mal an, du bist mit großer Wahrscheinlich Stephen Hawkings Mentor. Während Stephen Hawking davon ausgeht, dass Schwarze Löcher sogar Licht verschlingen, verschlingst du Schwärze Löcher im Handumdrehen. Wenn dich das sehr stört, solltest du dich doch mal mit der Schattenseite des Mondes beschäftigen, BlackJack. Viele nennen es auch "Dort wo die Sonne nicht hin scheint. Ergo: Schattenseite des Mondes.
An allen anderen: Ich würde mich über eine Erklärung oder Ergänzung meiner Kommentare freuen.
Guten Morgen Weltfrieden.
Sophus
@Sophus: Du bist jetzt von der Trotzphase ("ich will aber, dass das so funktioniert") in die Warum-Phase eingetreten und stellst alles in Frage. Die wichtigste Phase hast Du aber gar nicht durchlebt: Das Ur-Vertrauen. Diese Phase ist wichtig, um überhaupt soziale Bindungen aufbauen zu können. Es wird das Verhalten der anderen imitiert und experimentiert.
Hier hast Du eine Liste zum Spielen:
schau mal, was man an die Liste da anhängen kann:
Und bald darfst Du in den Kindergarten und mit den Programmen der großen Kinder spielen.
Hier hast Du eine Liste zum Spielen:
Code: Alles auswählen
zahlen = [3, 5, 1]
print zahlen
Code: Alles auswählen
zahlen.append(9)
print zahlen
Werter Sirius3,Sirius3 hat geschrieben:@Sophus: Du bist jetzt von der Trotzphase ("ich will aber, dass das so funktioniert") in die Warum-Phase eingetreten und stellst alles in Frage. Die wichtigste Phase hast Du aber gar nicht durchlebt: Das Ur-Vertrauen. Diese Phase ist wichtig, um überhaupt soziale Bindungen aufbauen zu können. Es wird das Verhalten der anderen imitiert und experimentiert.
Hier hast Du eine Liste zum Spielen:schau mal, was man an die Liste da anhängen kann:Code: Alles auswählen
zahlen = [3, 5, 1] print zahlen
Und bald darfst Du in den Kindergarten und mit den Programmen der großen Kinder spielen.Code: Alles auswählen
zahlen.append(9) print zahlen
ich Harry Potter danke dir. Anhand deiner beiden Beispiele habe ich nun verstanden, dass man zusätzlich zu der Variable (hier: "zahlen") durch die Argumente (hier: 9) beim append weitere Zahlen hinzufügen kann. Wenn ich das also verstanden habe, kann ich ja zur nächsten Frage übergehen. Alles was ich hier weiß, ist, dass man bei Dictionaries diese Klammern verwendet {}.
Code: Alles auswählen
# Dictionaries lassen sich auch erweitern:
d = {"foo": 42} # Hier ist foo ein Schlüssel, eben weil es in Anführungszeichen steht.
# Was aber besagt die 42 der Wert vom Schlüssel "foo" ist,
d["bar"] = 99 # ABER was ist d["bar"]? Was mich hier verwundert, ist, dass ein Gleichheitszeichen zwischen
# d und ["bar"] fehlt und dahinter = 99 steht. Was besagt das hier?
print(d) # print-Anweisung
> {'foo': 42, 'bar': 99} # Und hier wird gesagt: "zeige (print) mir den Schlüssel 'foo', dazu den Wert 42,
# dann den Schlüssel 'bar' und dazu den Wert 99. Richtig?
# Wenn das alles stimmt, wo wurde hier die Dictionaries verändert?
@Sophus: Ich glaube, du hast noch nicht so recht verstanden, wie die meisten Regulars (regelmäßig Aktive) dieses Forum verstehen: Man kann durchaus Anfängerfragen stellen - so blöde sie auch manchmal erscheinen mögen. Was aber gar nicht gern gesehen wird, ist wenn man bei jemandem den Eindruck hat, dass er sich rein gar nicht selbständig (dazu gehört auch das Studieren der offiziellen Dokumentation oder zumindest das Ergooglen von Grundlagen) mit dem Thema beschäftigt. Du bist so jemand und eckst zudem auch mit deinem zickigen Verhalten bei den Leuten an. Insofern finde ich den Vergleich mit einem kleinen Kind in Hinblick auf soziale Kompetenz, Lernverhalten, Selbständigkeit und Selbstreflexion gar nicht mal so schlecht.
Und nein, das war ganz offensichtlich kein inhaltlicher Beitrag von mir (zumindest nichts, was du erfragt hast), aber vielleicht geht dir ja doch irgendwann mal ein Licht auf, dass du ganz eventuell mal etwas an dir ändern solltest und dass eben *nicht* ausnahmslos alle außer dir selbst das Problem sind...
Und nein, das war ganz offensichtlich kein inhaltlicher Beitrag von mir (zumindest nichts, was du erfragt hast), aber vielleicht geht dir ja doch irgendwann mal ein Licht auf, dass du ganz eventuell mal etwas an dir ändern solltest und dass eben *nicht* ausnahmslos alle außer dir selbst das Problem sind...
Dieses Forum ist nicht dazu da um einen Python-Einführungskurs durchzuführen. Dazu ist es einfach das falsche Medium.Sophus hat geschrieben:Wenn ich das also verstanden habe, kann ich ja zur nächsten Frage übergehen.
Warum arbeitest du nicht einfach mal selber das Tutorial durch und stellst bei konkreten Problemen Fragen dazu?
Nein. Falsch. Probiere doch bitte die Codebeispiele einfach mal selber aus.Sophus hat geschrieben:Code: Alles auswählen
> {'foo': 42, 'bar': 99} # Und hier wird gesagt: "zeige (print) mir den Schlüssel 'foo', dazu den Wert 42, # dann den Schlüssel 'bar' und dazu den Wert 99. Richtig?
Diese Zeile stellt überhaupt keine Eingabe dar, sondern die Ausgabe des vorherigen print-Befehls.
@/me: Die trockene Theorie im Tutorial selbst durchzuarbeiten, dafür ist Sophus einfach nicht der Lerntyp. Der ist angehender Geschichtslehrer und weiss wovon er spricht. Glaub ihm das doch einfach mal. Und jetzt erklär ihm schnell jemand die Syntax und Semantik von literalen Wörterbüchern. Los, sonst heult er gleich wieder rum. Ich würd's ja selbst tun, aber Herr Hawking hat da gerade eine Frage um die ich mich zuerst kümmern muss.