Wir erstellen ein Addon (simples Tutorial von Anfang bis Ende)

  • Ich stehe irgend wie auf dem Schlauch die Woche komme kaum voran.
    Habe mich gestern und heute mit dem aktuellen Thema beschäftigt und auch die alten Themen immer wider her genommen.
    Hoffe ich bleib nicht auf der Strecke!

    Einmal editiert, zuletzt von Dima (19. November 2015 um 23:20)

  • Jetzt wirds ja langsam spannend und es fängt mit Unterschieden zu den Sprachen, die ich sonst so kenne an.
    Werde mir das auch am Samstag erst ordentlich zu Gemüte führen können.
    Beim Überfliegen jetzt, liest es sich aber alles relativ klar.

    lg fuenfzigccm

  • Ich stehe irgend wie auf dem Schlauch die Woche komme kaum voran.
    Habe mich gestern und heute mit dem aktuellen Thema beschäftigt und auch die alten Themen immer wider her genommen.
    Hoffe ich bleib nicht auf der Strecke!

    Glaube nicht das Du auf der Strecke bleibst.
    Wichtig steht das Du dranbleiben willst.
    Wenn Du noch ein Thema zurück sein solltest und Fragen stellst.
    Bitte den Teil angeben auf den sich deine Frage oder Fragen beziehen.

    Gruß Jan

  • @Dima ich glaube hier sind auch einige Fortgeschrittene bei die mitmachen. Klar fällt es denen leichter aber WIR schaffen das auch :D
    evtl hilft dir auch diese Seite um einiges klarer zu verstehen, hoffe ich trete jetzt Jan nicht auf die Füße

    Spoiler anzeigen

    Wenn ich den Link entfernen soll bitte bescheid sagen

    Nein, das ist doch gut wenn man sich informiert.
    Aber noch wichtiger finde ich das Anwenden des durchgesprochenen
    I'm Prinzip sich zu überlegen was man gerne haben würde und dann es versuchen umzusetzen.
    Natürlich ist das momentan nicht so einfach.
    Weil einfach viele Sachen die man so braucht noch nicht angesprochen wurden.
    Aber das kommt Stück für Stück.
    Mit jeden Teil wird man etwas mehr umsetzen können.

    Speziell für das Addon -development.
    Halte ich es für wichtig sich auch mal den Code von Addons anzusehen und zu versuchen den reinen Python Code zu lesen und zu verstehen.
    Teilweise müsste es mit dem erlernten schon gut funktionieren.
    Gruß Jan

  • f=open('beispiel.txt','w')
    f.close()

    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!!!

  • 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'
    suchen(search)

    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!!!

    Zu der ersten Frage:

    mit f erstellst du eine Variable die open('beispiel.txt'','w') = (öffnet ,erstellt zum schreiben) hält.
    Eine Datei sollte aber immer auch geschlossen werden also f.close().
    Das schließt f das ja open('beispiel.txt','w') ist.

    Zur 2 Frage :

    Mit def hast Du eine Funktion eingeleitet.
    Um sie zu benutzen mußt Du die Funktion ansprechen.
    Das tust Du in diesem Fall mit suchen(search) (Funktions-Name(Wert ))
    und dann bekommst Du auch Dein Ergebnis!!
    Habe Deinen Python Quelltext schon bearbeitet!


    Es ist doch klar das es Dir im Augenblick noch schwer fällt.
    Wenn Du am Ball bleibst gibt es sich mit der Zeit.


    Gruß Jan

    Besser zur späteren Verwendung wäre , wenn sich die Liste mit den Namen außerhalb der Funktion befinden würde.
    Denn dann könntest Du die Funktion universell für die Text-Suche in einer Liste einsetzen.

  • 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

    Einmal editiert, zuletzt von Bulvai (20. November 2015 um 21:21)

  • mit f erstellst du eine Variable die open('beispiel.txt'','w') = (öffnet ,erstellt zum schreiben) hält.
    Eine Datei sollte aber immer auch geschlossen werden also f.close().
    Das schließt f das ja open('beispiel.txt','w') ist.

    OK das f. hatte mich da verunsichert da hätte ich mal im Taskmanager ein Vergleich machen müssen.
    könnte das f doch weglasen wen ich close('beispiel.txt') schreibe oder?

    Es ist doch klar das es Dir im Augenblick noch schwer fällt.
    Wenn Du am Ball bleibst gibt es sich mit der Zeit.

    Ich hoffe doch habe ja noch das Handikap das ich kein Englisch kann.


    Wiso wird das letzte \n nicht angewendet ich muss es dopelt schreiben wen ich eine lehre Zeile möchte.

    Python
    f=open('beispiel.txt','w')
    f.write('Das ist ein Test.\n''Python ist schon cool.\n')
    f.close()

    Wieso muss ich den Zwischenschritt inhalt=f.read() machen und kann nicht gleich?

    Python
    f=open('beispiel.txt','a')
    print f
    f.close()


    Könntest du bitte das mit normalen Wörtern übersetzen.

    Python
    f=open('beispiel.txt','a')
    print f
    f.close()


    withe öffne oder erstelle('beispiel.txt') die Abkürzung dafür ist f:
    for line in f:
    zeige mir line

    Einmal editiert, zuletzt von Dima (21. November 2015 um 18:08)

  • Wiso wird das letzte \n nicht angewendet ich muss es dopelt schreiben wen ich eine lehre Zeile möchte.

    Na überlege mal. \n rückt nur auf die nächste Zeile vor. Das Steuerzeichen heisst ja nicht umsonst 'Zeilenumbruch'. Möchtest Du eine Leerzeile, musst Du 2x \n setzen.

    Wieso muss ich den Zwischenschritt inhalt=f.read() machen und kann nicht gleich?

    Wenn Du mit einem Auto fahren willst, musst Du auch erst vorbereitende Schritte machen. Bevor Du los fährst, möchtest Du es öffnen (open). Danach kannst Du fahren. Zum Schluss solltest Du es wieder abschliessen (close). Auch in der Programmierung sind gewisse Regeln/Vorbereitungen einzuhalten.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Aufgabe:1

    Spoiler anzeigen
    Python
    search=1
    
    
    def searchZahl(search):
        for zahl in range(1,26):
            if zahl == search:
                print str(zahl)+'gefunden.'
            else:
                pass
    searchZahl(search)


    Wollte eigentlich noch eine abfrage rein machen habe aber Probleme da es unterschiedliche Typen sind. search=raw_input('Wonach suchen sie? ')


    Aufgabe:2

    Spoiler anzeigen


    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.

    Einmal editiert, zuletzt von Dima (21. November 2015 um 19:35)

  • 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.

    Einmal editiert, zuletzt von Bulvai (21. November 2015 um 08:27)

  • @Dima

    Ich bin Jahrgang 1965.
    Habe niemals englisch in der Schule oder sonstwo gehabt.
    Aber durch die Beschäftigung mit der Programmierung mußte ich zwangsläufig lernen zu verstehen.
    Natürlich ist das Anfangs nicht leicht aber wo ein Wille ist ,ist auch ein Weg.
    Mittlerweile verstehe ich gelesenes Englisch sehr gut.
    Verständlich in English schreiben ist da schon eine andere Sache.


    Wolle eigentlich noch eine abfrage rein machen habe aber Probleme da es unterschiedliche Typen sind. search=raw_input('Wonach suchen sie? ')

    raw_input übergibt im Gegensatz zu input immer einen string!
    willst Du trotzdem raw_input verwenden um eine integer als Beispiel weiter zu verarbeiten mußt du den typ ändern!
    als Beispiel:

    Python
    search=raw_input('Wonach suchen sie? ') #ist der übergebene Wert von typ string
    
    
    search=int(raw_input('Wonach suchen sie? ')) ##ist der übergebene Wert von typ int

    Sieht zwar nicht gut aus mit der 'else' würde aber funktionieren:

    gn =wandel namen in Großbuchstaben
    gs =wandel search in Großbuchstaben

    Wir wandeln um damit es bei der Eingabe egal ist ob groß oder klein geschrieben und wenn diese Kombination von Buchstaben vorhanden ist auch immer etwas mittels find gefunden wird.

    Einfach ausgedrückt stellt find fest ob ein String oder ein Teil-String in einem anderen Vorhanden ist.



    Gruß Jan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!