Tämä esimerkki hyödyntää funktionaalista ohjelmointia. Funktionaalisessa ohjelmoinnissa käytetään lambdakalkyylia ja matemaattisia funktioita. Funktionaalinen ohjelmointi on yksi monista ohjelmointiparadigmoista, eli tapa ajatella ohjelmoinnin ongelmia.
Tässä esimerkissä on kolme erilaista toimintoa. Ne ovat merkkijonon lisääminen listaan, tietyn listassa olevan merkkijonon merkkien seuraavan merkin näyttäminen ja oikeanlaisten merkkijonojen suodatus (esim. pituuden tai yksittäisen sisältävän merkin mukaan)
Lisäksi käyttöliittymänä on tkinter-kirjastolla luotu graafinen käyttöliittymä, jossa on neljä erilaista kontrollityyppiä ja kolme kehystä.
Funktionaalisen ohjelmoinnin lisäksi on olemassa esimerkiksi olio-ohjelmointi ja proseduraalinen ohjelmointiparadigma.
from tkinter import * mjonot = [] def lisaa(): #Lisätään mjono listaan. mjono = syote.get() mjonot.append(mjono) def seuraava(): global mjonot #Muutetaan yksittäisen merkkijonon jokainen merkki seuraavaan merkkiin indeksi = int(syote.get()) mjono = list(map(lambda i: chr(ord(i)+1),mjonot[indeksi])) tuloste.config(text=mjono) def suodata(): global mjonot #Haetaan oikeanlaiset merkkijonot. #Ehtona voi olla joko merkki tai pituus if (var.get() == 1): merkki = syote.get()[0] tulos = list(filter(lambda i: merkki in i,mjonot)) elif (var.get() == 2): pituus =int( syote.get()) tulos = list(filter(lambda i: len(i) == pituus,mjonot)) tuloste.config(text=str(tulos)) root = Tk() #Ensimmäiseen kehykseen lisätään näppäimet. nappaimet = Frame(root) nappaimet.pack() #Näppäinten kautta merkkijonoja voidaan lisätä, muuttaa merkit seuraaviksi tai suodattaa pituuden tai sisältävän merkin mukaan. nappainLisaa = Button(nappaimet,text="Lisää",command=lisaa) nappainLisaa.pack() nappainSeuraava = Button(nappaimet,text="Seuraava",command=seuraava) nappainSeuraava.pack() nappainSuodata = Button(nappaimet,text="Suodata",command=suodata) nappainSuodata.pack() #Toiseen kehykseen lisätään radiobuttonit, joiden kautta ohjataan suodatusta. valinnat = Frame(root) valinnat.pack() var = IntVar() radioSisaltaa = Radiobutton(valinnat,text="Merkit",variable=var,value=1) radioSisaltaa.pack() radioPituus = Radiobutton(valinnat,text="Pituus",variable=var,value=2) radioPituus.pack() #Kolmanteen kehykseen lisätään muut kontrollit kehys = Frame(root) kehys.pack() syote = Entry(kehys) syote.pack() tuloste = Label(kehys) tuloste.pack() root.mainloop()
Aihe on jo aika vanha, joten et voi enää vastata siihen.