Hallo,
In meinen Skript wurde ich ermahnt Variablen nicht mit Zahlen zu erweitern. Dies wäre nicht fein.
Also zum Bleistift:
schalter_1 = 1
schalter_2 = 0
....
Welche Begründung gibt es für diese Ablehnung?
Es ist doch eigentlich Praktisch.
Könnte mir vorstellen, das es noch mehr Neulinge gibt die den selben "Fehler" begehen.
Eine Erklärung hilft immer.
Danke Ralf
Warum ist es eine unsitte Variablem mit Nummern zu erweitern?
Naja, was ist denn daran praktischer als
Stell mal fest, ob irgend ein Schalter an ist. Egal wie viele Schalter es sind, als Liste ist das immer . Und bei den nummerierten Variablen?
Also welchen Vorteil genau siehst du gegenüber der Liste?
Code: Alles auswählen
schalter = [True, False]
Code: Alles auswählen
any(schalter)
Also welchen Vorteil genau siehst du gegenüber der Liste?
Was ist denn Schalter 1? Und was Schalter 2? Heißen deine Kinder auch Kind 1 und Kind 2? Und wenn das mehr Schalter werden, und der Code umfangreicher, erinnerst du dich an jeder einzelnen Stelle daran, welche Nummer jetzt die richtige ist?
Das ist der eine, gewichtige Grund. Namen helfen beim Verständnis, und vermeiden Fehler. schalter_notaus und schalter_schwimmer zB.
Und dann sind da natürlich noch Mengen an Dingen, bei denen man statt diskreten Variablen eher Datenstrukturen benutzen will. Also zb eine Liste von Schaltern. Weil die alle zusammen etwas bedeuten, zb 8 DIP-Schalter für eine Kodierung zb eines Modus.
Das ist der eine, gewichtige Grund. Namen helfen beim Verständnis, und vermeiden Fehler. schalter_notaus und schalter_schwimmer zB.
Und dann sind da natürlich noch Mengen an Dingen, bei denen man statt diskreten Variablen eher Datenstrukturen benutzen will. Also zb eine Liste von Schaltern. Weil die alle zusammen etwas bedeuten, zb 8 DIP-Schalter für eine Kodierung zb eines Modus.
- DeaD_EyE
- User
- Beiträge: 1240
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Meinst du so?
Code: Alles auswählen
schalter_1 = 1
schalter_2 = 1
schalter_3 = 1
schalter_4 = 0
schalter_5 = 0
schalter_6 = 1
schalter_7 = 1
schalter_8 = 1
schalter_9 = 1
schalter_10 = 0
schalter_11 = 0
schalter_12 = 1
schalter_13 = 1
schalter_14 = 1
schalter_15 = 0
schalter_16 = 0
schalter_17 = 1
schalter_18 = 0
schalter_19 = 1
schalter_20 = 1
schalter_21 = 0
schalter_22 = 0
schalter_23 = 1
schalter_24 = 0
schalter_25 = 1
schalter_26 = 1
schalter_27 = 0
schalter_28 = 1
schalter_29 = 0
schalter_30 = 1
schalter_31 = 0
schalter_32 = 0
schalter_33 = 1
schalter_34 = 0
schalter_35 = 1
schalter_36 = 0
schalter_37 = 1
schalter_38 = 0
schalter_39 = 1
schalter_40 = 0
schalter_41 = 1
schalter_42 = 1
schalter_43 = 1
schalter_44 = 1
schalter_45 = 1
schalter_46 = 1
schalter_47 = 1
schalter_48 = 0
schalter_49 = 0
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Der Grund für die Rückverfolgung im Ablauf ist schon klar.
Benutze immer klare Bezeichnungen, eventuell Datenstrukturen wenn man etwas bündeln will...
Aber eine Auswirkung auf den Ablauf des Programms gibt es keine. Oder?
Wenn man eine Relaiskarte oder gar mehrere steuert und unklar ist, was am Relais 1 - 8 angeschlossen so wird man um eine Nummerierung nicht herum kommen. Denke ich.
Dann ist es eben karte_1_relais_1 ... karte_1_relais_8, karte_2_relais_1 ... karte_2_relais_8.
Etwas anderes würde mir hier jetzt nicht einfallen.
Benutze immer klare Bezeichnungen, eventuell Datenstrukturen wenn man etwas bündeln will...
Aber eine Auswirkung auf den Ablauf des Programms gibt es keine. Oder?
Wenn man eine Relaiskarte oder gar mehrere steuert und unklar ist, was am Relais 1 - 8 angeschlossen so wird man um eine Nummerierung nicht herum kommen. Denke ich.
Dann ist es eben karte_1_relais_1 ... karte_1_relais_8, karte_2_relais_1 ... karte_2_relais_8.
Etwas anderes würde mir hier jetzt nicht einfallen.
Wieso ist eine Relais-Karte besonders? Entweder hängen da unterschiedliche Dinge dran, dann kann man die auch benennen. Oder man benutzt eine Liste.
Und du hast recht, dem Computer ist der Name egal. Es geht aber um den Programmierer. Der macht die Fehler, nicht der Computer.
Und du hast recht, dem Computer ist der Name egal. Es geht aber um den Programmierer. Der macht die Fehler, nicht der Computer.
Wobei... die süße "Relais-Katze"
war das der Mensch mit einem Tippfehler oder diesmal der Computer mit einer wilden Autokorrektur? 


_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
- __blackjack__
- User
- Beiträge: 14052
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@kiaralle: Wie steuert man etwas mit Relais wenn man gar nicht weiss was da dran hängt? 
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Bei meiner Software für den Lastabwurf im Inselnetz der PV, für angeschlossenen Verbraucher, an eben dieser Relaiskarte.
Der User kann selber entscheiden was er da anschließt. Ich kenne seinen Bedarf nicht.
Somit kann ich im Skript keine Bezeichnungen wie Heizung, Pumpe Garten, Wallbox... verwenden.
Der User kann selber entscheiden was er da anschließt. Ich kenne seinen Bedarf nicht.
Somit kann ich im Skript keine Bezeichnungen wie Heizung, Pumpe Garten, Wallbox... verwenden.
Dann ist es eben eine Liste von Kanaelen. Immer noch kein Grund, etwas durchzunummerieren. Aber ein ernstzunehmendes Skript haette dafuer eine Konfiguration, in der dann wiederum die Kanaele auch benannt werden koenne, damit zB im Logging auch was vernuenftiges steht, wie "Waschmaschine abgeschaltet" statt "Kanal 3 abgeschaltet", wo man schon wieder wissen muss, was das denn genau war.
Da komme ich jetzt nicht ganz mit.
Das interessiert mich jetzt wirklich. Hänge da irgendwie fest.
Auf der php-Seite kann ich ja über den Status (wird vom python in die status.txt) geschrieben etwas zuordnen. Somit wird auf der Webseite der Status vom Relais angezeigt.
Von der php-Seite aus vergebe ich reale Namen (schreib ich in eine Config) für die einzelnen Relais.
Wie kann ich das jetzt im python-Skript einfügen? Also aus der Config lesen bekomme ich ja hin, kein Problem.
Es bleibt doch bei meiner Nummerierung. Oder nicht? ...Wie ?
Habt ihr eine Stück Code zur Veranschaulichung damit es bei mir klick macht?
Das interessiert mich jetzt wirklich. Hänge da irgendwie fest.
Auf der php-Seite kann ich ja über den Status (wird vom python in die status.txt) geschrieben etwas zuordnen. Somit wird auf der Webseite der Status vom Relais angezeigt.
Von der php-Seite aus vergebe ich reale Namen (schreib ich in eine Config) für die einzelnen Relais.
Wie kann ich das jetzt im python-Skript einfügen? Also aus der Config lesen bekomme ich ja hin, kein Problem.
Es bleibt doch bei meiner Nummerierung. Oder nicht? ...Wie ?
Code: Alles auswählen
relais = [
[relais_1, "Bezeichnung 1 aus der config.txt "],
[relais_2, "Bezeichnung 2 aus der config.txt "]
]
Da komme ich jetzt nicht mehr mit.
Was hat denn jetzt PHP damit zu tun?
Es bleibt _nie_ bei einer Nummerierung. Weil das nur Nachteile und keine Vorteile hat.
Wenn du mehrere Relais-Karten hast und die wirklich generisch haben möchtest, dann ist das eine Liste von Karten.
Und die Karten sind mindestens Datenstrukturen der einzelnen Relais oder Objekte, die das entsprechend abbilden.
Aber es sind sicher nicht durchnummerierte Namen.
Was hat denn jetzt PHP damit zu tun?
Es bleibt _nie_ bei einer Nummerierung. Weil das nur Nachteile und keine Vorteile hat.
Wenn du mehrere Relais-Karten hast und die wirklich generisch haben möchtest, dann ist das eine Liste von Karten.
Und die Karten sind mindestens Datenstrukturen der einzelnen Relais oder Objekte, die das entsprechend abbilden.
Aber es sind sicher nicht durchnummerierte Namen.
Die Relais per for-Schleife in eine Liste, es gibt keine Variable relais_1 oder relais_2, denn dann hättest Du ja den selben Code mehrfach kopiert in der Pythondatei stehen.
Woher kommt jetzt PHP? Eigentlich möchte man nicht mehrere "Programmier"sprachen mischen, wenn man es vermeiden kann.
Config-Dateien speichert man am besten als Json oder YAML aber niemals als Text-Datei.
Woher kommt jetzt PHP? Eigentlich möchte man nicht mehrere "Programmier"sprachen mischen, wenn man es vermeiden kann.
Config-Dateien speichert man am besten als Json oder YAML aber niemals als Text-Datei.