Beiträge von skatulskijean
-
-
-
-
Genau das.
Aber Dima sagte ja schon, dass das noch nicht vollständig ist ?lg fuenfzigccm
ist Kein Nicht funktionierender Code , macht das selbe wie die While schleife nur kürzer und einfacher!!
Besser gesagt man hat das selbe Ergebnis!!
Also gibt die einzelnen Buchstaben des Wortes Ananas aus!Habe es im Tutorial jetzt auch als Python Quellcode gesetzt.
Hoffe das ist so besser!Eine Else in der For Schleife hat sich nicht angeboten zumal ich die Vergleichsoperatoren noch nicht angesprochen habe.
Du wirst sie sicherlich Kennen und benutzen können ,viele der anderen aber nicht!Gruß Jan
-
-
Wir haben doch eine Zuordnung Tiere=['Affe','Tiger','Kuh']Index 0 1 2
Affe=0 Tiger=1 Kuh=2Ich bin geduldig kein Problem!
Hast du die E-Mail Adresse bekommen?Ja, aber könntest du in deinem Beispiel den Tieren zu.B ihre Art zu ordnen.
Der Unterschied ist doch das ich einen Schlüssel einen Wert zu ordnen kann.
Ich dachte das ein Wörterbuch den Unterschied klar und deutlich macht.Am besten ist man schickt mir eine email an meine email mit den usernamen von hier.
-
Heftiger Stoff in Abschnitt 5. Gelesen hab ich es schon mal.Mache nachher mal den Notepad Test.Und ich dachte schlimmer kann es nicht mehr werden
Rene ,mache dir mal keinen Kopf.
Es ist schon so das es ein Menge Informationen sind.
Aber wie in allen macht üben den Meister.Es gibt Sachen die ich euch nicht abnehmen kann.
Dazu gehört es das gelernte selbst zu benutzen.
Nur wenn Du es auch benutzt wird vieles klarer werden.Für den 5. Teil .
Wenn es dir vom lesen her schon schwer vorkommt.
Solltest Du dir überlegen für was du so ein schlüssel wert paar gebrauchen könntest und es dann auch
Selbstständig anwenden.Bis jetzt ist alles noch logisch oder ich versuche es wenigstens so zu schreiben.
Grußwort Jan
-
Und wen du die Reihenfolge behalten musst kann man eine Liste oder Tumple machen.Wieso wir aber so viele Möglichkeiten brauchen begreife ich nicht haben schon zwei.
Es ist doch das erstmal das wir genau etwas zuordnen können.
Einen Wert einen Schlüssel und über diesen Schlüssel den Wert ansprechen können.
Wie werden es im Laufe des Addon - Tutorial noch brauchen.
Es ist immer besser etwas vorher schon mal gesehen zu haben oder besprochen zu haben .
Wie gesagt es ist ein sehr kleiner Teil von Python den wir hier behandeln.
Aber ohne das wird es nichts.Dima wenn du jetzt Dir mal den Code eines Addons ansiehst müsste Dir vieles schon klarer sein als vor Beginn des Tutorials.
Aber bei weitem noch nicht alles.Verstehe ja das man ungeduldig ist da man zum Kern gelangen will aber zum Kern gelangt man nur wenn man wenigstens etwas Von den Grundlagen verinnerlicht hat.
Gruß Jan
-
-
-
Wenn du die Postion auf eine Liste beziehst ist das Richtig aber das Dictionary was ich erstellt habe heißt Farben .
und die keys sind z.B white ,red,blue
print Farben['white']
>>>FFFFFFFF AusgabeCode
Alles anzeigenimport re Farben={} xml='<?xml version="1.0" encoding="utf-8"?><colors><color name="white">FFFFFFFF</color><color name="grey">FFb4b4b4</color><color name="grey2">FF999999</color><color name="grey3">FF505050</color><color name="black">FF000000</color><color name="blue">FF0084ff</color><color name="selected">FFEB9E17</color><color name="bmwamber">FFFF7E00</color></colors>' match=re.findall('name="(.*?)">(.*?)</',xml) for farbe,wert in match: Farben[farbe] = wert print Farben print Farben['blue'] Farbliste=Farben.keys() Wertliste=Farben.values() print Farbliste print Wertliste
Vielleicht ist das so besser zu verstehen.
Gruß Jan
-
-
[h1]Der Datentyp Dictionary[/h1]
Die zusammengesetzten Datentypen, die wir bisher behandelt haben Strings, Listen und Tupel verwenden Ganzahlen als Index um Teile des Dateitypen anzusprechen.
Wir erinnern uns bitte!
Beispiel Dateityp string:
'Hans' String
0123 indexDas ist bei einen Dictionary nicht der Fall.
Ein Dictionary besteht aus Paaren die einen Schlüssel(Key) und ein dazugehöriges Wert halten.
Das bedeutet zu jeden in einem Dictionary enthaltenden Schlüssel(key) gehört immer ein Wert.Ein Möglichkeit, ein Dictionary zu erzeugen, ist mit einem leeren Dictionary zu beginnen und dann Elemente hinzuzufügen.
Syntax leeres Dictionary:Dictonary Name = {}
Beispiel:
ger2eng = {} erzeugt ein Dictionary mit den Namen ger2engDiesem Leeren Dictionary müssen wir nun Paare hinzufügen die aus einem Schlüssel und einem dazugehörigen Wert bestehen.
Syntax hinzufügen von Elementen zu einem leeren Dictionary:
Dictonary Name[Schlüssel] = WertBeispiel:
ger2eng = {} erstellt ein leeres Dictionary mit denn Namen ger2eng ger2eng['eins'] = 'one' fügt den Dictionary ger2eng ein Element mit den Schlüssel(key) eins und dem dazugehörigen Wert one zu. ger2eng['zwei'] = 'two' fügt den Dictionary ger2eng ein Element mit den Schlüssel (key) zwei und dem dazugehörigen Wert two zu. ger2eng['drei'] = 'three' fügt den Dictionary ger2eng ein Element mit den Schlüssel (key) drei und dem dazugehörigen Wert three zu. print ger2eng gibt den aktuellen Wert des Dictionarys aus >>>{'eins': 'one', 'zwei': 'two','drei': 'three'}
Wir können ein Dictonary aber auch erstellen in dem wir im gleich die Schlüssel(key)-Wert Paare hinzufügen:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng
>>>{'zwei': 'two', 'eins': 'one', 'drei': 'three'}Wie wir sehen gibt die Ausgabe mit Print nicht die korrekte Reihenfolge wieder.
Zum Glück gibt es keinen Grund, sich um diese Reihenfolge überhaupt zu Kümmern denn
wir müssen ja nicht auf einen Ganzahl Index zugreifen um einzelne Element anzusprechen
statt dessen benutzen wir die Schlüssel um die entsprechenden Werte zu ermitteln:Beispiel:
print ger2eng['zwei']
>>>'two'[h1]Dictionary Operationen[/h1]
Die del Anweisung entfernt ein Schlüssel-Wert Paar aus dem Dictionary:
Syntax:
del Dictionary Name[Schlüssel]Beispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
del ger2eng['eins']
print ger2eng
>>>{'drei': 'three', 'zwei': 'two'}Wir können auch einen neuen Wert für einen Schlüssel setzen:
Syntax
Dictionary Name[Schlüssel] = Neuer WertBeispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
ger2eng['drei']='keine Ahnung'
print ger2eng
>>>{'drei': 'keine Ahnung', 'eins': 'one', 'zwei': 'two'}Die len Funktion die wir ja schon kennen funktioniert auch mit dem Typ Dictionary; sie gibt die Anzahl der Schlüssel-Wert Paare zurück:
Syntax:
len(Dictionary Name)Beispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print len(ger2eng)
>>>3[h1]Dictionary Methoden[/h1]
Eine Methode ist ähnlich einer Funktion sie übernimmt Parameter und gibt einen Wert zurück aber die Syntax ist anders. Die keys Methode übernimmt z. B. ein Dictionary und gibt eine Liste von Schlüsseln zurück, die im Dictionary vorkommen.
Aber anstatt der Syntax für Funktionen keys(ger2eng) verwenden wir die Methoden-Syntax ger2eng.keys().Die keys Methode:
Sie gibt eine Liste der Keys (Schlüssel) des Dictionary aus
syntax:
Dictionary Name.keys()Beispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng.keys()
>>>['drei', 'eins', 'zwei']Die values Methode:
Sie gibt eine Liste der Werte des Dictionarys aus:
Syntax:
Dictionary Name.values()Beispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng.values()
>>>['three', 'one', 'two']Die item Methode:
Die items Methode gibt beide zurück, und zwar in der Form eine Liste von Tupeln ,eines für jedes Schlüssel-Wert Paar:
Syntax:
Dictionary Name.items()Beispiel:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng.items()
>>>[('drei', 'three'), ('eins', 'one'), ('zwei', 'two')Die has_key Methode:
Mit der has key Methode kann man prüfen ob ein Key(Schlüssel) in einem Dictionary vorhanden ist:
Ist das Key(Schlüssel) im dem Dictionary vorhanden wird True ausgegeben ist das Key(Schlüssel) nicht im Dictionary vorhanden wird False ausgegeben.
Syntax:
Dictionary Name.has_key(Schlüssel)Beispiele:
ger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng.has_key('eins')
>>>Trueger2eng = {'eins': 'one', 'zwei': 'two', 'drei': 'three'}
print ger2eng.has_key('Apfel')
>>>False[h1]Schleifen[/h1]
Schleifen, werden benötigt, um einen Codeblock, den man auch als Schleifenkörper bezeichnet,
wiederholt auszuführen.
In Python gibt es zwei Schleifentypen: die while-Schleife und die for-Schleife.[h1]Die while-Schleife:[/h1]
While bedeutet so lange um das etwas zu verdeutlichen sehen wir und mal ein
Beispiel einer while Schleife an.
Das im Prinzip folgende Syntax hat:while Bedingung:
AnweisungBeispiel:
Pythonfrucht='Ananas' index=0 while index < len(frucht): letter = frucht[index] print letter index = index + 1
Ergebnis print:
>>>A
>>>n
>>>a
>>>n
>>>a
>>>sErklärung:
frucht='Ananas' erstellt eine Variable frucht mit den string Ananas als Wert index=0 erstellt eine variable index mit dem Wert 0 (die als zähler benutzt wird) while index < len(frucht): so lange der index kleiner ist als die länge des strings frucht letter = frucht[index] ist letter = fruit[index] print letter gebe letter aus index = index + 1 erhöht den Zähler um 1 und gibt ihn zu while Einen Index zu verwenden um einen Satz von Werten zu durchlaufen ist so gebräuchlich, dass Python dafür eine alternative, einfachere Syntax bereitstellt die for Schleife:
[h1]Die for Schleife:[/h1]
iteration = beschreibt allgemein einen Prozess mehrfachen Wiederholens gleicher oder ähnlicher Handlungen zur Annäherung an eine Lösung oder ein bestimmtes Ziel.
In Python dient die for-Schleife zur Iteration über ein Sequenz von Objekten
Syntax:
for Variable in Sequenz:
Anweisung1
Anweisung2
...
Anweisungn
else:
Else-Anweisung1
Else-Anweisung2
...
Else-Anweisungm
Beispiel :
>>>A
>>>n
>>>a
>>>n
>>>a
>>>sZu dem else Zweig in der For Schleife sowie etwas ausführlich zur For Schleife kommen wir beim nächsten mal wenn wir auf die Vergleichsoperatoren eingegangen sind.
-
Warum soll ich mit einem 'Befehl' ein Objekt in einer Liste ersetzen. Da kann ich doch gleich einfach das Objekt umbenennen. Der Sinn erschließt sich mir hier nicht
Danke Jan. Tja war wieder mal die "Kleinigkeiten" die es ausmachen ob etwas funktioniert oder nicht .
Soweit alles klar.Nur eine Grundsätzliche Frage:
Warum soll ich mit einem 'Befehl' ein Objekt in einer Liste ersetzen. Da kann ich doch gleich einfach das Objekt umbenennen. Der Sinn erschließt sich mir hier nicht
Man kann auch ein Objekt mit einen anderen Ersetzen:
Syntax:
Listen Name[index des Objektes das ersetzt werden soll]=Neues ObjektBeispiel:
Tiere=['Affe','Tiger','Kuh']
Tiere[0]='Vogel'Da kann ich doch einfach den 'affen' umbenennen auf 'vogel'
Später im Addon erstellst Du eine Liste vielleicht aus dem Zugriff auf eine Website und Du willst den einen Wert ändern.
Natürlich kannst Du auch anstatt Vogel Bär schreiben aber in der Schule konntest Du ja auch nicht wenn die Aufgabe 5+6 war 5+8 rechnen denn dann war das Ergebnis falsch und viel anders ist das auch hier nicht.
Ist auf der Arbeit ja auch nicht anders kannst ja in der Autowerkstatt wenn Du die Räder wechseln sollst nicht weil Du Lust hast den Motor ausbauen!!Gruß Jan
-
farbe[white, red, blue]
wert[FFFFFFFF, FFFF0000, FF0000FF] (sofern ich das jetzt richtig gesetzt hab)
ah, ich glaub das ist kein array, sondern ne liste.Ja das sind 2 Listen , die hast Du durch das erstellen des Dictionary auch
print Farben.keys()
würde dir nur die Farben in der Art zurückgeben [white, red, blue]
mit print Farben..values() würdest Du eine Liste der Werte erhalten.Die Manipulationsmöglichkeiten sind trotzdem wie im Post davor beschrieben vorhanden.
im Prinzip könntest Du 2 Variablen erstellen die diese Listen halten.
Farbliste=Farben.keys()
Farbwerte=Farben.values()und dann über diese Variablen auf die entsprechenden Listen zugreifen.
Ich muß jetzt erst bei meinen Addon Tutorial weitermachen .
Dag eht es heute um Dictionarys und Schleifen.
Listen waren im Teil4 dran .
Kannst ja mal reinschauen wenn Du Lust hast.Gruß Jan
-
Nein ein Dateityp in Python wie Strings Listen usw.
Das gute ist das Du nicht ein Index hast der von 0 beginnt sondern auf die Werte eines Dictionarys mit einem Key (Schlüssel zugreifen kannst .In den Python code im Beispiel .Habe ich Deine Beispiel xml mit re geparst (regex) und
den Namen der Farbe und den Wert in in ein Dictionary mit den Namen Farben geschrieben.
wobei der Farben Name dann ein Schlüssel Wurde und einen entsprechenden Wert hält.
Wie gesagt du kannst die einzelnen Werte der Farben ansprechen., ein Schlüssel mit Wert löschen neue Hinzufügen den wert einer farbe ändern.
Nur die Farben ausgeben oder nur die Werte ausgeben. usw. -
Du könntest die ganze Sache in ein Dictionary packen und dann hast du Schlüsselwörter mit einem entsprechenden Wert!
Du könntest mit den Schlüsseln auf die Werte zugreifen!
Neue Hinzufügen Löschen und die Werte ändernprint Farben['grey'] würde die z.B den Wert von grau ausgeben
mit del Dictionary Name[Schlüssel] kannst du ein Paar löschen
oder z.B mit Dictionary Name[Schlüssel] = Neuer Wert einen neuen Wert den Schlüssel geben usw.Pythonimport re Farben={} xml='<?xml version="1.0" encoding="utf-8"?><colors><color name="white">FFFFFFFF</color><color name="grey">FFb4b4b4</color><color name="grey2">FF999999</color><color name="grey3">FF505050</color><color name="black">FF000000</color><color name="blue">FF0084ff</color><color name="selected">FFEB9E17</color><color name="bmwamber">FFFF7E00</color></colors>' match=re.findall('name="(.*?)">(.*?)</',xml) for farbe,wert in match: Farben[farbe] = wert print Farben
Wäre das mit einem Dictionary nicht sogar besser?
-
Was willst Du am Ende damit machen und warum in ein array?
Bzw willst Du damit auf die Namen zugreifen und dann den Wert erhalten?
-
Hast Du eine Beispiel xml ?
-
Verstanden Rene'?
Noch mehr Fragen zum Thema 4?
Ok warte noch 1 Stunde auf Fragen zum Thema 4.
Dann lade ich Thema 5 hoch.
Sollten dann noch Fragen zum Thema 4 oder 3 kommen.
Bitte in der Fragestellung mit angeben aus Welchen Thema (1,2,3,4)
So das es für die Allgemeinheit leichter ist zu sortieren welche Frage nun wozu gehört.
Gruß Jan