Beiträge von Bulvai

    Da es bis zur nächsten Übung jetzt etwas länger dauert, will die Zeit nicht ungenutzt verstreichen lassen. Drum mal ein paar Code-Zeilen zusammen gezimmert um das gelernte etwas zu vertiefen.
    Mit Klassen geht es bestimmt noch etwas eleganter, aber ich möchte da nicht vorgreifen.

    Hab die Übungen soweit schon durch, morgen werde ich dann noch ein paar Funktionen daraus basteln.

    Das einzige Problem war in Übung 12:

    Erst lösche ich die 2 Dateien im Verzeichnis da ich dieses nur löschen kann wenn es leer ist mit:

    for name in os.listdir(home):
    os.remove(name)

    Danach möchte ich ins übergeordnete Verzeichnis mit os.chdir(Path) wechseln um das Verzeichnis auch löschen zu können:
    >>> Wie das geht habe ich bisher nicht rausgefunden.
    >>> Absoluter Pfad funktioniert natürlich (ist aber nicht der Sinn der Sache)

    Ich habs auch ohne Dateien zu löschen hinbekommen.

    Code
    import shutil
    
    
    shutil.rmtree('Test')


    Ist wahrscheinlich anders gewollt, aber so gehts schneller

    Zitat von Dima


    Hab das jetzt mal nur schnell überflogen, weil ich möchte eigentlich gerade in die Pove. 8)
    Aber so müßte es gehen:

    Hab das noch mal überarbeitet. War doch nicht funktionsfähig

    Zitat von Dima

    Leider begreife ich einfach nicht die 6. Zeile in diesem Code!
    Und ich bekomme es auch nicht hin das es nur die gefundenen zeigen tut sowie wen er nichts findet nur einmal print search + ' nicht gefunden' ausführt.


    In name wird bei jedem Durchlauf ein Datensatz von der Liste Daten gespeichert.
    Mit name.upper() wird dieser in Großbuchstaben verwandelt.
    In diesen wird mit name.upper().find() nach bestimmten Zeichen gesucht und der Index des zuerst vorkommenden Zeichens zurückgegeben.
    Da der Datensatz mit upper() in Großbuchstaben verwandelt wurden muß dies, um was zu finden, auch mit dem zu suchenden String passieren.
    str.upper(search) ist ein Cast bei dem die Varible in einen String und direkt in Großbuchstaben verwandelt wird.

    wieso das f= und f.Das begreife ich einfach nicht da ich auch ohne eine Datei erstelle

    Python
    search='gg'
    def suchen(search):
        for name in ['Hans','Hannelore','Hanes','Hanf']:
            if ((name.upper()).find(str.upper(search))>=0):
              print name
            else:
              print search + ' nicht gefunden'

    Was ist hier falsch das ich weder eine Fehler Meldung noch ein Ergebnis bekomme?

    Im Augenblick fehlt mir es schwer das gelernte zu kombinieren und ich muss immer wider schauen wie die Syntax richtig zuschreiben ist.
    Das gelernte zu lesen und zu verstehen geht bisher. Ich werde aber nicht aufgeben!!!

    Code
    def suchen(search):
    for name in ['Hans','Hannelore','Hanes','Hanf']
        if ((name.upper()).find(str.upper(search))>=0):
            print name
        else:
            print search + ' nicht gefunden'
    
    
    suchen('ns')


    Sollte wohl eher so aussehen.

    Du mußt deine definierte Funktion immer mit FunktionsName(Variablenname, ...) aufrufen

    Code
    2. Was macht \n?

    \n bewirkt einen Zeilenvorschub


    Code
    3. Was würde \t tun?

    \t fügt einen Tabulator ein

    Code
    3. Was macht print ,?

    print , bewirkt daß der Zeilenvorschub, der nach jeder Printanweisung ausgeführt wird, diesmal nicht gemacht wird


    Code
    4. Was oder worin besteht der Unterschied zum einlesen der Datei mit
    read() gegenüber den einlesen der Datei in einer for Schleife?


    Mit read liest man alles auf einen Schlag ein und mit For-Schleife Zeile für Zeile.


    Wobei mir beim rumprobieren aufgefallen ist, daß Python wohl keinen Inkrement wie i++ versteht.

    Man kann auch mit den Namen eines Objektes innerhalb der Liste Suchen.
    Wobei anhand des Objektes der Index dieses Objektes ausgeworfen wird.
    Syntax:

    Listen Name.index(Objekt)

    Beispiel:
    Tiere=['Affe','Tiger','Kuh']
    Tiere.index("Tiger")


    Zählen mit len()


    oder man macht es unnützerweise so:


    wenn man so döspaddelig ist und den Index vergißt.

    Zitat von skatulskijean

    Das müßte doch eigentlich

    Code
    print mixName(a,b)


    heißen

    Wobei zu beachten ist das die Variablen innerhalb einer Funktion trotz gleichen Namens erst einmal nix mit den Variablen außerhalb der Funktion zutun haben. Erst durch Funktionsaufrufe wie 'mixName(a,b)' werden die Werte der Funktion übergeben.
    Bei der Initialisierung der Funktion könnte auch mit anderen Variablen gearbeitet werden.

    zB

    def MixName (x,y):