Wie sage ich es in Python ? (Einsteigerfragen)

  • Müsste man dann einfach weitere elif befehle machen?

    Das ganze in eine Schleife packen, vereinfacht so:


  • Das ganze in eine Schleife packen, vereinfacht so:


    Danke schön! :-)


    Switch-cases sind eine elegantere Lösung, anstatt dutzender if/elif/else.


    https://jaxenter.com/implement…tement-python-138315.html

    Schau ich mir mal an! Danke! :-)


    Geht jetzt!

  • Hallo Zusammen,


    Ich habe ein kleines Verständnisproblem beim iterieren über ein Dict.


    Dict:

    Code
    a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}

    For Scheife:

    Code
    for key in a_dict:
    print(key, '->', a_dict[key])

    Ausgabe:

    Code
    color -> blue
    fruit -> apple
    pet -> dog

    Ich verstehe hier nicht, wie "key" zwei verschiedene Ausgaben haben kann.

    Einerseits "color" andererseits "blue"


    Gibt es hier eine Erklärung wie das gehandhabt wird?




    Verständlicher würde es natürlich auch so gehen:

    Code
    for key, value in a_dict.items():
    print(key, '->', value)
    color -> blue
    fruit -> apple
    pet -> dog
  • Ich habe ein kleines Verständnisproblem beim iterieren über ein Dict.

    Keine Ahnung, was du erwartest... beim Iterieren über ein Dict wird über die Keys iteriert. Dann hast du den key und bekommst über a_dict[key] den zugeordneten Wert. Das gibst du dann aus. Was soll sonst erscheinen?


    Ich verstehe hier nicht, wie "key" zwei verschiedene Ausgaben haben kann.

    Das ist eine falsche Annahme, es handelt sich einmal um den Key und einmal um den zugeordneten Wert.


    Verständlicher würde es natürlich auch so gehen:

    Richtig, das ist das gleiche, nur schöner.

  • Vom Verständnis her ist das einfach, wie ein Array - bloß, dass du die Arrays nicht mit Zahlen, sondern direkt mit ihrem Namen ansprichst.


    Code
    schulnoten = {"thomas":6, "markus":1}
    schueler = "thomas"
    print(schulnoten[schueler])
    schueler = "markus"
    print(schulnoten[schueler])
  • Astorek86 Das ist ein assoziatives Array, also auch ein Array, wenn auch kein numerisches. ;)

    So nennt das aber niemand, wenn es um Python geht. "Arrays" sind Listen (list), "assoziative Arrays" sind Dictionaries (dict). Neben list gibt es aber auch noch tuple (und andere sequenzielle Container, mit und ohne definierter Reihenfolge)... ist nun ein Tuple ein "Array", oder ist eine Liste ein "Array", oder beides? Da gibt es viele Gemeinsamkeiten, aber eben auch eine Menge Unterschiede...


    IMHO darf man die Datentypen in Python also nicht so reduzieren.

  • ... ist nun ein Tuple ein "Array", oder ist eine Liste ein "Array", oder beides?

    Beides. Ein Tuple ist ein einmehrdimensionales Array. Aber egal, es ging doch hier ja nur darum ein Dict sprachenübergreifend zu erklären. ;) Vielleicht kennt sich wusa ja besser in C oder bash usw. aus und kam nur nicht darauf, das ein dictionary ein assoziatives Array ist.

  • Hallo,


    weder noch. `array` ist ein eigener Datentyp in Python (der eher selten Anwendung findet). Ist ist halt in diesem Falle falsch, die Nomeklatur aus anderen Programmiersprachen auf Python anzuwenden.


    Gruß, noisefloor

  • Ihr habt ja alle recht, deswegen habe ich meinen Satz ja auch absichtlich mit "Vom Verständnis her..." angefangen und auch tatsächlich "Array" absichtlich verwendet in der Hoffnung, eine Brücke zu anderen Programmiersprachen zu bauen. Die Verwendung und v.a. Vorteile von Dictionarys braucht ja erstmal etwas Zeit, wenn man Ewigkeiten mit Arrays hantiert hat, weil es in vielen anderen Programmiersprachen keine "Key-Value"-ähnlichen Datentypen gibt - geschweigedenn Lists oder Tuples.


    Ich hab den Array-Datentyp ja auch nirgends in Beziehung zu Lists oder gar Tuples gesetzt, von daher...

  • Beides. Ein Tuple ist ein einmehrdimensionales Array. Aber egal, es ging doch hier ja nur darum ein Dict sprachenübergreifend zu erklären. ;) Vielleicht kennt sich wusa ja besser in C oder bash usw. aus und kam nur nicht darauf, das ein dictionary ein assoziatives Array ist.

    Vielen Dank für die Erklärung. Ich habe weder Erfahrung mit C noch mit Bash. Habe mit Python angefangen.

    Mir war das ganze einfach nicht klar, wie es funktioniert. Habe mich da etwas an dem Key aufgehängt da für ein und das selbe Wort 2 verschiedene Ausgaben generiert wurden.

    Das Beispiel von Astorek86 habe ich super Verständlich gefunden!

  • Hallo,


    wusa: vielleicht solltest du nochmals die entsprechenden Sektionen im offiziellen Python-Tutorial auf docs.python.org durcharbeiten. Der Zugriff auf mehrelementige Datentypen wie z.B. Listen, Tuple und Dicts ist essentiell wichtig. Das sind absolute Grundlagen, die man verinnerlicht haben muss. Sonst wird das nix mit der Python-Programmierung.


    Gruß, noisefloor

  • Hallo zusammen,


    ich war fast am verzweifeln mit Klassen, Methoden, Attributen usw... umso mehr ich darüber gelesen habe umso weniger hab ich verstanden und umso komplizierter kam es mir vor. Wenn ich z.B. Nach Klassenvariabeln gegoogelt habe, hab ich nie was gefunden das mir weiter hilft. Es taten sich immer neue Baustellen auf ...

    Ich hab es nun aber endlich geschafft, eine Klasse zu erstellen, die als Hygrometer/Wetterstation dienen soll. Vielleicht hilft das einigen ja auch zum Verständnis oder bei ähnlichen Problemen mit Variablen in Klassen.


    Ich bin noch nicht ganz damit zufrieden, denn die Variablennamen erscheinen mir unnötig lange. Vielleicht habt ihr einen TIpp, wie ich das einfacher gestalten kann ?


  • > Wenn ich z.B. Nach Klassenvariabeln gegoogelt habe

    Falsches Stichwort: das gesuchte heisst Instanzvariable


    Klassenvariablen gibt es zwar auch, aber die werden viel seltener gebraucht.

  • Ich bin noch nicht ganz damit zufrieden, denn die Variablennamen erscheinen mir unnötig lange. Vielleicht habt ihr einen TIpp, wie ich das einfacher gestalten kann ?

    Meistens ist es ungünstig Sprachen zu mischen, wie hier Englisch Deutsch. Bei der Wahl optimaler Variablenbezeichnung habe ich auch immer so meine Schwierigkeiten. Zu lang oder zu kurz ist oft unleserlich.