Array + Tastaturansteuerung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Xalooz
User
Beiträge: 19
Registriert: Samstag 17. April 2021, 07:28

Hallo,

ich möchte folgendes programmieren:

Ich habe ein Array:

Code: Alles auswählen

prozent = numpy.array([100, 90, 50, 10])
Jetzt gebe ich einen Anfangswert vor z.B.

Code: Alles auswählen

angangswert = 100
Dieser Wert wäre bei prozent[0]. Wie kann man die Position suchen? Also auf welcher Position im Array befindet sich der Wert 100

Jetzt nun zum Ablauf:

Wir befinden uns jetzt bei prozent[0]. Wenn ich jetzt die Pfeiltasten nach unten auf der Tastatur betätige, dann gelangen wir zum nächsten Wert im Array (Also Wert 90). Das ganze geht dann bis zum Wert 10. Wenn ich aber die Pfeiltaste nach oben betätige soll der Wert entsprechend um eine Array Position nach oben wechseln. Jemand eine Ahnung wie ich das programmieren soll?

Hab keyboard importiert

Code: Alles auswählen

import keyboard

if keyboard.read_key() == ?:
Aber keine Ahnung wie ich das ? durch dien Pfeiltaste ersetzen kann. Notfalls würde ich es über irgendwelche anderen Tasten auf der Tastatur nehmen.

Danke im voraus!
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie hast Du denn die Pfeiltaste nach unten programmiert?
Du willst also irgendeine Art Userinterface. Was soll das alles können? Was soll dann mit den Prozentwerten passieren?
Benutzeravatar
__blackjack__
User
Beiträge: 14055
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Muss das ein Array sein? Den Index des ersten Vorkommens eines Wertes kann man bei Listen deutlich einfacher ermitteln.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Xalooz
User
Beiträge: 19
Registriert: Samstag 17. April 2021, 07:28

Die Pfeiltasten sind noch nicht programmiert. Um das Ganze zu vereinfachen, nehmen wir einfach

Code: Alles auswählen

keyboard.read_key() == "u"              #nach unten

 keyboard.read_key() == "o"             #nach oben

Code: Alles auswählen

import keyboard

anfangswert= 100      #wert gebe ich hier einfach per Hand ein

prozent = [100, 90, 50, 10]

index_aktuell = prozent.index(anfangswert)

if keyboard.read_key() == "u":
     wert = prozent[index_aktuell +1]
     
     print(wert)
Jetzt würde ich 90 als Ergebnis erhalten. Das ist richtig, aber jetzt spricht das System ab. Ich muss wieder auf run gehen.
Ich möchte nach jeder "u" Eingabe das der Wert im Array eins weiter geht bis 10 erreicht ist.
Nach jeder "o" Eingabe soll mein Wert im Array entsprechend eins erhöht werden
Den Anfangswert gebe ich einfach per Hand ein, kann also auch 50 sein
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Willst Du wirklich global die Tastatur lesen?
Was Du suchst, nennt sich Schleife:

Code: Alles auswählen

import keyboard

def main():
    while True:
        key = keyboard.read_key()
        if key == keyboard.KEY_DOWN:
            print("Pfeil nach unten")
        elif key == keyboard.KEY_UP:
            print("Pfeil nach oben")

if __name__ == "__main__":
    main()
Wie Du jetzt Deine Prozente da einbauen kannst, kannst Du selbst probieren.
Xalooz
User
Beiträge: 19
Registriert: Samstag 17. April 2021, 07:28

Wie ist das denn zu verstehen?

Wenn ich auf die Taste nach unten drücke, gehe ich in die if Bedinung rein? Da passiert irgendwie nix
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Erster Schritt wäre, mal auszugeben, was in `key` steht und dann das für die if-Bedingung zu nehmen.

Code: Alles auswählen

import keyboard

def main():
    while True:
        key = keyboard.read_key()
        print(key)

if __name__ == "__main__":
    main()
Antworten