Introduktion till programmering - filhantering och grafiska gränssnitt

Preview:

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 Johanssonmail@simon-johansson.com

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?!