Upload
simon-johansson
View
101
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Slides from the course Introduction to Programming, lecture held at The Department of Computer and Systems Sciences at Stockholm University 2014
Citation preview
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?!