Introduktion till programmering
Filhantering och grafiska gränssnitt
Simon [email protected]
Repetition
Felhantering: try/except
Booleska variabler: True & False
Utökad selektion: if/elif/else
Iteration: while & for
Datasamlingar: [], (), {}
Repetition: for-loop & listor
def showContent(list):for item in list:
print item
def main():saker = ["Simon", 115, "Mango", False]showContent(saker)
main()
Simon
115
Mango
False
ex.1
Repetition: while-loop & felhantering
while True: try: userInput = int(raw_input("Skriv ett heltal:")) break except ValueError: print "Måste vara ett heltal! Försök igen."
print userInput * 10
ex.2
Repetition: index
lista = ["röd", "grön", "blå"] 3st element
På index 0 finns: röd
0 - röd
1 - grön
2 - blå
ex.3
print str(len(lista)) + "st element"
print "På index 0 finns: " + lista[0]
for i in range(0, len(lista)): print str(i) + " - " + lista[i]
Persistens
Hur data överlever till nästa programkörning● Spara i en databas● Spara i en fil
Vi börjar med att titta på hur vi kan skriva ner data till en fil från ett Python-program
Spara till fil
highScore = 1000
myFile = open('fil.txt', 'w')myFile.write(str(highScore))myFile.close()
ex.4
Sökvägar
#Relativ sökvägmyFile = open('fil.txt', 'w')
#Absolut sökvägmyFile = open('C:/min_mapp/fil.txt', 'w')
Spara till fil
highScore = [250, 375, 400, 480, 520]
myFile = open('fil.txt', 'w')
for item in highScore: myFile.write(str(item) + '\n')
myFile.close()
ex.5
Spara till fil med felhantering
highScore = [1000, 1500, 2000, 2500, 3000]try: myFile = open('fil.txt', 'w') for item in highScore: myFile.write(str(item) + '\n') myFile.close()except IOError: print 'Error! Kunde inte skriva till fil'
ex.6
Läsa från fil med felhantering
try: myFile = open('fil.txt', 'r') print myFile.read() myFile.close() except IOError: print "Error! Kunde inte läsa från fil"
ex.7
Läsa från fil med felhantering & “with”
try: with open("fil.txt") as myFile: print myFile.read()
except IOError: print "Fel i filläsningen"
ex.8
GUI-bibliotek
PyQtwxPythonTkinter - ingår i standardbiblioteket
Python har ett starkt community, många bra plugins att ta hjälp av.
Tkinter-widgets
Label() - EtikettEntry() - InputrutaText() - TextrutaCheckbutton() - KryssrutaButton() - Knapp (går att koppla till en funktion)
effbot.org/tkinterbook
GUI-programmering med Tkinter
from Tkinter import *
ex.9
window = Tk()
etikett = Label(window, text="Mitt första GUI!")
etikett.pack()
knapp = Button(window, text="Klicka här!",
bg="blue", fg="white", command=myFunction)
knapp.pack(fill=X)
window.mainloop()
GUI-programmering med Tkinter ex.9
Positionering av widgets
.pack() - Placerar widgets efter varandra
.grid(row=0, column=0) - Placering efter ett rutnät
OBS! Blanda aldrig grid och pack!effbot.org/zone/tkinter-geometry.htm
Inmatningsruta
textVar = StringVar()
textVar.set("Skriv här!")
inmatning = Entry(window, textvariable=textVar)
inmatning.pack()
#I en annan del av koden
textVar.get()
ex.10
Inmatningsruta ex.10
Tips
● Experimentera med exemplen
● Prova en massa olika Tkinter-widgets
● Ställ en massa frågor på handledningen och i forumet på iLearn2
Frågor?!