Tietokoneiden näyttöjä, joissa näkyy kuvaa automaatiolaboratorion laitteistosta. Monitoreiden takana näkyy sama laitteisto kuin kuvissa.

timohei.net / Opintojaksot / Soveltava ohjelmointi / Tentti /
Python-ohjelma

Pythonin toiminnallisuutta voidaan helposti laajentaa asentamalla lisäosia paketteina (package). Paketissa määriteltyjä funktioita (function) ja luokkia (class, ohjelmallisen olion "piirustus") saa otettua käyttöön ohjelmissa komennolla from paketti import funktio/luokka.

Paketit asennetaan Python-ympäristöön pip-ohjelmalla.

from pynput import keyboard # Otetaan käyttöön luokka keyboard paketista pynput # Määritellään kaksi funktiota, joita kutsutaan Listeneristä. # # Funktiota nappainta_painettu() kutsutaan, kun jotain näppäintä on painettu ja # funktiota nappain_vapautettu(), kun sormi nostetaan näppäimeltä. def nappainta_painettu(nappain): # Määritellään funktio nappainta_painettu(), jolle välitetään yksi parametri try: # Varaudutaan suoritusaikaisiin virheisiin try/except-rakenteella teksti = "Näppäintä {} painettu" # Valmistellaan muotoiltua tulostusta (kts. format()-funktio) print(teksti.format(nappain.char)) # nappain.char muuntaa näppäinkoodin tulostettavaksi # merkiksi. Funktionäppäinten tai muiden erikois- # näppäimien koodeja ei voi muuttaa tulostettavaksi # merkiksi, vaan ne aiheuttavat AttributeError- # virheen, joka käsitellään except-lohkossa. except AttributeError: teksti = "Erikoisnäppäintä {} painettu" print(teksti.format(nappain)) # Erikoisnäppäimet tulostetaan koodimuodossa # käyttämättä char-metodia def nappain_vapautettu(nappain): # Muuten samanlainen kuin nappainta_painettu()- # funktio, mutta erikoisnäppäinten vapauttamisesta # ei tulosteta mitään. try: teksti = "Näppäin {} vapautettu" print(teksti.format(nappain.char)) except AttributeError: if nappain == keyboard.Key.esc: # Sen sijaan tarkistetaan, josko painettu print(" painettu, lopetetaan") # näppäin oli <Esc>-näppäin. return False # Jos oli, palautetaan funktiota kutsuneeseen # ohjelmaan False, mikä pysäyttää Listenerin # toiminnan.
# PÄÄOHJELMA, jossa luodaan ja käynnistetään näppäimistön kuuntelija (non-blocking mode) kuuntelija = keyboard.Listener( # Luodaan Listener-tyyppinen muuttuja kuuntelija ja on_press=nappainta_painettu, # määritellään se kutsumaan funktioita, kun on_release=nappain_vapautettu) # näppäintä painetaan tai näppäin vapautetaan. kuuntelija.start() # Käynnistetään kuuntelija. Se jää suoritukseen, # kunnes Listener-metodin suoritus lakkaa - mikä # tapahtuu, kun <Esc>-näppäintä painetaan.
Päivitetty 28.8.2022

<<  Edellinen
( 1) Tentti
Sivu 2/3Seuraava >>
(3) ST-ohjelma
© Timo Heikkinen | timo piste heikkinen at oamk piste fi