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

  • Kann mich AR2015 nur anschließen dies ist alles komplettes Neuland für mich und der Input ist schon gewaltig. Wobei natürlich deine Arbeit Jan Weltklasse ist.

    Danke !

    Werde also jetzt immer einen Tag Pause nach einen Thema machen.
    Also Morgen kommt nichts aber Dienstag dann schon ne ganze Menge.
    So das dann am Donnerstag nur Stoff kommt der so hinzunehmen ist.
    Erstellung eines Tests Addons so das man Dienstag, Mittwoch und Donnerstag hat sich mit dem doch Umfangreichen Thema 4 zu befassen.

    Grußwort Jan

  • Ich bin zu doof für alles hier. den hans test ging schon nicht und auch der helper imprt test auch nicht.kein ahnung warum.Mache alles so wie hier beschrieben

    das kommt beim teste helper import:

    NPP_EXEC: "Run Python"
    CD: D:\Python Projecte
    Current directory: D:\Python Projecte
    C:\Python27\Python "Test
    Process started >>>
    Traceback (most recent call last):
    File "Test", line 1, in <module>
    from tools.helper import *
    ImportError: No module named tools.helper
    <<< Process finished. (Exit code 1)

    aber im ordner tool ist die helper.py drinnen und die __inity__.py
    Test.py ist im Ordner Python Projecte

  • du versuchst helper.py im Ordner "tools" zu laden.

    Bitte kontrolliere:
    heißt der Ordner wirklich D:\Python Projecte\tools
    oder heißt er vielleicht
    D:\Python Projecte\tool ?

    man beachte das fehlende "s" am Ende.
    Das könnte der Grund sein, warum Python die Datei nicht findet.

  • a='Peter'
    b='ist'
    c='mein'
    d='Freund'

    Resultat=a+' '+b+' '+c+' '+d
    print

    ja das ist so richtig!
    Es fehlt nur die letzte Anweisung. DU musst dem Befehl print sagen, was du ausgeben möchtest. In diesem Fall hast du der Variable "Resultat" die Inhalte der Variablen a b c und d einschließlich der Leerzeichen zugewiesen.

    wenn du nun

    Python
    print Resultat


    vervollständigst, erhälst du auch eine Ausgabe.

    Eine andere Möglichkeit, wie sie Jan vorgestellt hat, wäre

    Python
    print '%s %s %s %s' % (a,b,c,d)


    beides führt zum gleichen Ergebnis.

    VG flynk

  • Bitte nicht gleich die Flinte ins Korn werfen!!!
    Aller Anfang ist schwer!
    Überprüfe ob der Fehler dort liegt wo von flynk beschrieben.
    Wenn das nicht hilft ,hast du die init.py mit 2 __ einmal vor dem init und einmal nach dem init geschrieben.
    Also so __init__ ?

    a='Peter'
    b='ist'
    c='mein'
    d='Freund'

    Resultat=a+' '+b+' '+c+' '+d
    print

    ist das so richtig?

    Sorry Leute aber ich bin total NEU auf dem programmier Sektor
    Brauche jetzt mal ne Pause

    auch wie geschrieben. Print heißt ausdrucken,schreiben und kann nur funktionieren wenn der Print Anweisung mitgeteilt wird was sie schreiben soll!
    Also in diesen Fall print Resultat.

    Nimm Dir die Pause, steck aber nicht auf.
    Du packst das!!!!

  • Es ging mir niemals darum das mich hier nicht jemand unterstützt.
    Ich wollte nur verhindern das es sinnloses diskutieren gibt.
    Denn ich habe einen Plan wie ich das hier Umsetze.
    Und gerade wenn wir zusammen.B beim scrappen einer Website sind oder bei der Sache wieviel
    Man als Anfänger von Python verstehen muss um sein erstes Addon erstellen zu können kann und will ich mich nicht auf Potenz Gerangel einlassen da dadurch mein ganzes vorhaben eher nicht zum Ziel führt.

    Inzwischen müssten ja auch die letzten Begriffen haben das das was ich hier versuche weit mehr als 5 Euro
    Wert ist und wenn nicht denke ich mal leben Sie in Ihrer eigenen Welt.


    Wie gesagt Danke!!!

    Gruß. Jan


    PS Hoffe nicht das sich dadurch wieder einige auf den Schlips getreten fühlen und es wieder endlose Diskussionen gibt.


    Muss ins Bett muß Morgen um 4 Uhr los.

  • @skatulskijean Bin etwas hinten dran, hab gerade viel um die Ohren. Werde gleich Kapitel 3 durchgehen und bin schon sehr gespannt. Feedback folgt! Schlaf dich aus ;)

    Client 1: Raspi3, LibreElec, Kodi Krypton I Client 2: Intel i5 750, GeForce GTX 750, 8GB Ram, Win7, Kodi Krypton
    Display: Samsung UE40J6250
    Ego: Student aus Kiel, Kompetenzen in Lesen & Schreiben + Wirtschaft + Pädagogik I Alter Ego : Call me Mike

    1. if bedingung1:
    2. anweisungen1
    3. elif bedindung2:
    4. anweisungen2
    5. else:
    6. anweisungen3

    if ist als wen zu verstehen oder?
    elif ist das selbe wie if?
    und else bedeutet sonst?

    und bei:
    max = a if (a > b) else b
    print max

    Muss man ja noch a=10 und b=8 dazu nähmen richtig?
    Sonst hat die Formel kein Bezug.

    Werde jetzt nachdem ich das gelesen habe und zum teil auch schon verstanden mal selber Testen dann kommen sicher noch Fragen.
    Hoffe die Leute haben noch nicht Aufgegeben und es wir neue gute Add-On Schreiber geben nach deinem Kurs.

  • Habe alles soweit nachvollziehen können. Vieles ist ähnlich wie bei vbscript. Nur die Syntax ist etwas anders.
    Zuviel fand ich die Lektion nicht, da man aber auch nicht jeden Tag Zeit hat, ist ein Tag Pause nicht schlecht.
    Sonst sind plötzlich immer mehr noch bei einem anderen Kapitel zu Gange und alles geht wild durcheinander.
    Ich fand überwiegend alles gut erklärt. Manches musste man aber erst im Editor nachvollziehen bevor es klar wurde.

    Ein Problem für mich ist noch die Funktion. Wie übergebe ich den Returncode der Funktion an eine Variable um ihn anschliessend auszuprinten. Das konnte ich bisher nicht realisieren.

    Ein weiteres Problem sind die verkürzten Schreibweisen für die:
    1. Strings aneinander zu ketten mit %s %s usw.
    2. verkürzte if then else Anweisung

    Da sieht man den erfahrenen Programmierer. An solche Schreibweisen kann ich mich nur sehr schwer gewöhnen. Das macht den Code nur deutlich schwerer lesbar. Da würde ich immer die längere Variante wählen, da ich den Code in einem Monat auch noch nachvollziehen muss. Wenn man das natürlich täglich benutzt ist das was anderes und es geht bald in Fleisch und Blut über....

    Insgesamt weiter so. Ich bin bisher begeistert.

  • if ist als wen zu verstehen oder?
    elif ist das selbe wie if?
    und else bedeutet sonst?

    if = falls, elif (else if)=falls nicht, aber falls, else = falls nicht
    Mal in Pseudocode heißt das nichts anderes als:
    Falls "Bedigung1" eintrifft, führe "Anweisung1" aus
    Trifft "Bedingung1" nicht zu, aber "Bedingung2", dann "Anweisung2"
    Trifft nichts zu (in dem Fall weder "Bedingung1" und "Bedingung2"), dann führe folgendes aus "Anweisung3".

    Bei dem zweiten Punkt hast du Recht. Hab es nicht ausprobiert, aber ohne initalisierte Variablen, wird er dir ein Fehlercode ausgeben. In C war es damals das schöne "... variable hasn´t been declared in this scope.."

    @Hagba20
    In dem Beispielfall liefert das Return- Statement den verketteten String. Wenn du diesen per print- Befehl ausgeben willst, musst du einer Variable den Return- Wert der Funktion zuweisen.
    Hierfür z.B. folgender Codeschnipsel

    Python
    ausgabe = mixName(a,b)
    print ausgabe

    Den einfach an das schon geschriebene Programm anhängen. Und falls es keine Error gibt, wird das Programm den verketteten String in der Console ausgeben.

    @OP, wenn ich zu viel dazwischen quatsche, auch mich bitte davon in Kenntnis setzen und ich halte mich zurück. Will den Thread ja auch nicht unnötig aufblähen.

    lg fuenfzigccm

  • a=5
    b=3
    d=a/b
    print d

    Wieso bekomme ich nur 1 und nicht 1,6666
    Es gab doch keine Definition das er mir das print als Ganzzahl geben soll.


    Wozu braucht man den String wen man Variablen hat?
    Nur um die Ausgabe print begrenzen zu können?


    a="Hans"
    print a[-1]
    Wie kann man ein sH erzeugen?
    Habe verschiedenes versucht bekomme es aber nicht hin.


    a="Hans"
    i=len(a)-1
    print i
    Das ergibt 3 wieso???
    Und was ist da wider der unterschied zu den Oben?


    Wenn wir diese Strings jetzt in einen Satz münden lassen wollten könnten wir das mittels + Zeichen tun:
    Resultat=a+' '+b+' '+c+' '+d
    das ' ' gibt ein Leerzeichen
    Viel eleganter und kürzer wird es aber wenn wir die Format Anweisung nutzen.
    Das ist aber länger nicht kürzer!


    Das Einrückungen übernimmt bei mir Geany automatisch und setzt dabei Tab ein.
    Werde schauen ob man das ändern kann auch wen ich Tab mehr mag.


    Wenn ich das Ausführe bekomme ich:<function mixName at 0x7f00bc357578> und temp ist noch schlimmer.
    Wieso muss ich print mixName (a,b) schreiben der Name ist doch nur mixName und (a,b) sind die Variablen mit den er Arbeiten soll.
    a='Peter'
    b='Horst'


    def mixName (a,b):
    temp='%s %s' % (a,b)
    return temp


    print mixName


    Wieso kann ich nicht das komplette Modul importieren?
    import tools.helper
    print Name


    Die if-Anweisung: Beispiel: felt : bei else


    Wie ist die "Kurz Version" hier zu machen???
    a=10
    b=8
    c=5
    d=99

    if (a < 3):
    max=a
    elif (b > d):
    max=b
    elif (c == 5):
    max=c
    else:
    max=d

    print max


    Habe die Fragen und den einen Hinweis Farblich unterteilt damit es übersichtlicher wir hoffe habe jetzt kein Fehler gemacht bin auch schon K.O.

  • Danke für Eure Hilfe-Antworten.Werde das am Abend gleich mal checken.
    Zum Thema 1 Tag Kurs & 1 Tag Pause:
    Da ich mir jetzt schon schwer tu alles zu verstehen wäre es mir lieber nur 2-3mal die woche Kurs und der Rest zum Testet.Dann dauert es zwar länger bis zum Schluss aber man hat auch genug Zeit alles zu Testen,Fragen zu Stellen,selbst mal Pause zu machen,und ist wahrscheinlich dann mit dem Tempo hier auch nicht so schnell überfordert
    Leute der Winter ist noch lange ☺

  • Noch ein Punkt der mir z.B. in der Funktion aufgefallen ist:
    Zuerst werden die Variablen a und b definiert:

    a='Hans'
    b='Peter'

    Dann erstellt man eine Funktion mit den selben Namen

    def mixName (a,b):
    temp='%s %s' % (a,b)
    return temp

    Hier wird wieder die Bezeichnung a,b benutzt.
    Allerdings sind hier a,b nicht die Variablen a,b sondern die Parameter der Funktion.

    Das ist für einen Anfänger sehr schwierig zu unterscheiden. Deshalb empfehle ich klare Bezeichnungen für die Variablen zu wählen, damit man am Namen direkt den Typ erkennt.

    Zur besseren Lesbarkeit des Code, die Variablen am besten anders benennen und mit Typ-Prefix vorangestellt:
    z.B. lstra , lstrb (für lokaler String a, String b)
    und pstra, pstrb (Parameter String a, String b)

    Noch eine Frage wie kann ich Kommentare im Code machen?

  • Wieso bekomme ich nur 1 und nicht 1,6666
    Es gab doch keine Definition das er mir das print als Ganzzahl geben soll.

    Da wir wie von mit im Thema geschrieben nur ganz Zahlen behandelt haben

    Wozu braucht man den String wen man Variablen hat?
    Nur um die Ausgabe print begrenzen zu können?

    Eine Variable hält einen Wert.
    String und Integer als Beispiel sind Dateitypen

    Für Die es unterschiedliche integrierte Funktionen in Python gibt um diese zu nutzen muß python natürlich wissen um welchen Dateityp es sich handelt.
    Deswegen z.B d='Frage' durch ' ist klar das es ein String ist.
    Denn wir haben gelernt das ' oder" genutzt werden um Strings darzustellen.

    a="Hans"
    print a[-1]
    Wie kann man ein sH erzeugen?
    Habe verschiedenes versucht bekomme es aber nicht hin.

    Steht im Tutorial .
    Bitte lies noch einmal nach!

    a="Hans"
    i=len(a)-1
    print i
    Das ergibt 3 wieso???
    Und was ist da wider der unterschied zu den Oben?

    a hält 4 Buchstaben.Wenn ich der Funktion len() a als Wert gebe (der ja Hans ist ) .
    Haben wir ein Ergebnis von 4 i=len(a) wenn wir 4-1 rechnen was wir mit i=len(a)-1 tun haben wir ein Ergebnis von 3

    Wenn wir diese Strings jetzt in einen Satz münden lassen wollten könnten wir das mittels + Zeichen tun:
    Resultat=a+' '+b+' '+c+' '+d
    das ' ' gibt ein Leerzeichen
    Viel eleganter und kürzer wird es aber wenn wir die Format Anweisung nutzen.
    Das ist aber länger nicht kürzer!

    Nein das ist nur in dem Beispiel Kürzer :
    In der realen Benutzung kann a ja ein sehr langes Wort sein und b auch usw.
    wir sparen und immer das +' '+ für ein Leerzeihen.

    Du wirst im weiteren Verlauf des Kurses noch merken das diese schreibweise besser zu handeln ist.

    Wieso muss ich print mixName (a,b) schreiben der Name ist doch nur mixName und (a,b) sind die Variablen mit den er Arbeiten soll.

    Wir wollen das Ergebnis mit den Werten von a, b haben und dazu muß in dem Aufruf der Funktion schon stehen was oder mit welchen Werten sie es tun soll.

    Das ist eine immer widerkehrende Sache und Du wirst sie später verstehen.

    Wieso kann ich nicht das komplette Modul importieren?
    import tools.helper

    Kannst Du doch ,
    Da wir aber davon gesprochen haben das wir den Import genau so später brauchen und
    der Import vom kompletten Modul und der Import eines Teiles eines Modul schon angesprochen wurde
    ist es hier so.


    Dima es ist gut das Du fragst aber bestimmte Sachen sind in einer Programmiersprache klar definiert und das muß man dann schon so hinehmen.


    Gruß Jan

Jetzt mitmachen!

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