Introduktion till programmering - filhantering och grafiska gränssnitt
-
Upload
simon-johansson -
Category
Education
-
view
104 -
download
1
description
Transcript of Introduktion till programmering - filhantering och grafiska gränssnitt
![Page 1: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/1.jpg)
Introduktion till programmering
Filhantering och grafiska gränssnitt
![Page 2: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/2.jpg)
Simon [email protected]
![Page 3: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/3.jpg)
Repetition
Felhantering: try/except
Booleska variabler: True & False
Utökad selektion: if/elif/else
Iteration: while & for
Datasamlingar: [], (), {}
![Page 4: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/4.jpg)
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
![Page 5: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/5.jpg)
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
![Page 6: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/6.jpg)
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]
![Page 7: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/7.jpg)
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
![Page 8: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/8.jpg)
Spara till fil
highScore = 1000
myFile = open('fil.txt', 'w')myFile.write(str(highScore))myFile.close()
ex.4
![Page 9: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/9.jpg)
Sökvägar
#Relativ sökvägmyFile = open('fil.txt', 'w')
#Absolut sökvägmyFile = open('C:/min_mapp/fil.txt', 'w')
![Page 10: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/10.jpg)
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
![Page 11: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/11.jpg)
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
![Page 12: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/12.jpg)
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
![Page 13: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/13.jpg)
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
![Page 14: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/14.jpg)
GUI-bibliotek
PyQtwxPythonTkinter - ingår i standardbiblioteket
Python har ett starkt community, många bra plugins att ta hjälp av.
![Page 15: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/15.jpg)
Tkinter-widgets
Label() - EtikettEntry() - InputrutaText() - TextrutaCheckbutton() - KryssrutaButton() - Knapp (går att koppla till en funktion)
effbot.org/tkinterbook
![Page 16: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/16.jpg)
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()
![Page 17: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/17.jpg)
GUI-programmering med Tkinter ex.9
![Page 18: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/18.jpg)
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
![Page 19: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/19.jpg)
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
![Page 20: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/20.jpg)
Inmatningsruta ex.10
![Page 21: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/21.jpg)
Tips
● Experimentera med exemplen
● Prova en massa olika Tkinter-widgets
● Ställ en massa frågor på handledningen och i forumet på iLearn2
![Page 22: Introduktion till programmering - filhantering och grafiska gränssnitt](https://reader034.fdocuments.net/reader034/viewer/2022052601/558a670bd8b42a4e4a8b4770/html5/thumbnails/22.jpg)
Frågor?!