Lathund till Python 2

Transcription

Lathund till Python 2
Cybergymnasiet Odenplan – Programmering B – 2011
Variabler
En variabel är som en ask med ett namn i vilken det finns ett värde eller en referens.
tal = 3
# En variabel som heter tal i vilken värdet 3 finns
s = ”Hej”
# En variabel som heter s i vilken det finns en referens till en textsträng
l = [1, 2, 3] # En variabel som heter l i vilken det finns en referens till en lista
Inbyggda datatyper (En datatyp anger vad för slags värde/data det finns i en variabel.)
int
För heltal, t.ex. 15
float
För decimaltal (kallas även för flyttal), t.ex. 21.34
string
För text, t.ex. ”Hej på dig”
boolean
För True eller False
list
För listor med element, t.ex. [”a”, 11, ”hej”] (en lista med tre element)
I Python kan datatypen ändras för en variabel (det kallas för dynamisk typning), t.ex. kan vi ha:
min_variabel = 12
# Nu är datatypen för variabeln int
min_variabel = 12.3
# Nu är datatypen för variabeln float
min_variabel = ”Hej”
# Nu är datatypen för variabeln string
Funktioner
En funktion är som en svart låda som utför något. En funktion kan skicka tillbaka något, det kallas för
returvärde. En funktion kan ta indata, det kallas för parameter eller argument.
slumptal = randint(10, 20) # En funktion som tar två parametrar och returnerar en int
Det finns flera inbyggda (färdiga) funktioner i Python, t.ex. int(), str(), raw_input(), range(), open() .
(Se http://docs.python.org/library/functions.html för alla inbyggda funktioner.)
Det finns många andra funktioner i lagrade i olika moduler, t.ex. random och easygui.
Man kan även skapa sina egna funktioner med hjälp av ordet def (se nedan).
Funktioner för typomvandling (Om man vill ändra datatypen för en variabel eller ett värde.)
str()
För att göra om ett tal till en text
str(34)
# Returnerar ”34”
int()
För att göra om en text till ett heltal
int(”34”)
# Returnerar 34
Moduler
Funktioner kan samlas i filer, en sådan fil med olika funktioner kallas för modul. För att kunna
använda en funktion som ligger i en modul måste man först importera modulen.
Det kan göras på olika sätt:
import random
# Måste sen skriva modul.funktion, t.ex. random.randint(1,10)
import * from random
# Skriver sen bara funktionsnamnet, t.ex. randint(1, 10)
1
Cybergymnasiet Odenplan – Programmering B – 2011
Utmatning (För att visa något för användaren av programmet.)
print ”Ett exempel med text och tal”, 34, ”som skrivs ut i konsollen.”
easygui.msgbox(”Ett exempel med text och tal ” + str(34) + ” som visas i en dialogruta”)
Inmatning (För att be användaren mata in något till programmet.)
s = raw_input(”Vad heter du? ”)
# Returnerar en textsträng
a = input(”Ange ett tal: ”)
# Returnerar en int eller en float
v = easygui.enterbox(”Vad?”)
# Returnerar en textsträng
Villkor
Villkor kan göras med if, elif och else. Ex:
tal1 = input(”Ange ett tal”)
tal2 = input(”Ange ett till tal”)
if tal1 > tal2:
print ”Det första talet är större än det andra.”
elif tal1 == tal2:
print ”Talen är lika stora.”
else:
print ”Det andra talet är större än det första.”
Text / Textsträng / Sträng
En text kallas även för textsträng eller bara sträng. Datatypen för text heter string. För att få ut en del
av en sträng används sträng[index1:index2], t.ex. på följande sätt:
s = ”Ett exempel”
d = s[0:3]
# Tar ut de tre första tecknen från strängen s
Man kan slå ihop strängar genom att använda plustecken. ”hej” + ”då” blir ”hejdå”
Listor
En lista är som en låda med flera element/askar för att hålla olika värden.
En lista kan skapas på flera sätt:
lista1 = [3, 4, 6, 8, -1]
# En lista med några tal. lista1 kallas även för listobjekt.
lista2 = [None]*100
# Skapar en lista (ett listobjekt) med 100 element
lista3 = range(1, 30)
# Skapar en lista med heltal från 1 till 29 med hjälp av funktionen range
s = ”En mening med fem ord.”
lista4 = s.split()
# Skapar en lista från en sträng som delas upp vid mellanslagen
För att komma åt ett element i en lista används indexering. Ex:
print lista1[0]
# Skriver elementet på position 0 i listan lista1
lista2[1] = 3
# Sätter elementet på position 1 i listan lista2 till 3
2
Cybergymnasiet Odenplan – Programmering B – 2011
Vanliga listmetoder (En metod är som en funktion som finns för ett objekt.)
minLista = ["bara", "ett", "exempel"]
# minLista är ett listobjekt
minLista.append("nytt")
# lägger till ett element först i listan
minLista.remove("ett")
# tar bort element ”ett”
minLista.pop(0)
# tar bort ett element på position 0
minLista.insert(0, ”hej”)
# lägger till på position 0
print minLista
# ger *’hej’, 'exempel', 'nytt'+
Funktionen range
Används för att skapa listor av heltal. Passar bra tillsammans med en for-loop (se nedan). Ex:
range(1, 10)
# Ger en lista av heltal från 1 till 9
[1, 2, … 8, 9]
range(2, 10, 2)
# Ger en lista av jämna heltal mellan 1 och 8
[2, 4, 6, 8]
range(10, 0, -2)
# Ger en lista från 10 till 2
[10, 8, …., 2]
for-loopar
I Python används for-loopen för att loopa igenom en lista eller en textsträng:
s = ”abcdefghijklmnopqrstuvwxyzåäö”
for b in s:
# Loopar igenom strängen s tecken för tecken
print b
l = range(1, 10)
for tal in l:
print tal
# Loopar igenom listan element för element
while-loopar
Kan användas på olika sätt, ex:
i=0
while i < 100:
print i
while True:
print ”hej hur manga gånger som helst”
Att skriva egna funktioner
För att göra egna funktioner skriver man def funktionsman(ev_parametrar). Här följer två exempel:
def kvadrat(tal):
return tal * tal
def skrivut_lista(l):
for i in range(0, len(l)):
print ”l*” + str(i) + ”+ = ” + str(l[i])
3
Cybergymnasiet Odenplan – Programmering B – 2011
Egna funktioner lägger man högst upp i programmet. Längst ner kommer själva huvudprogrammet
som kan anropa funktionerna man skrivit. T.ex. kan det se ut på följande sätt:
#-------------------------------Huvudprogrammet startar här --------------------------------------print ”Fyra gånger fyra blir”, kvadrat(4)
# Anropar funktionen kvadrat
s = raw_input(”Skriv in en mening”)
lista = s.split()
skrivut_lista(lista)
# Anropar funktionen skrivut_lista
Felhantering
För att ta hand om fel som kan uppstå i ett program kan man använda try och except. T.ex. om man
försöker att omvandla en sträng till ett tal och det visar sig att strängen innehåller en bokstav.
try:
tal = int(easygui.enterbox(”Ange ett heltal”))
# Försöker göra om inmatningen till en int
except:
easygui.msgbox(”Ett fel uppstod vid omvandlingen. Talet måste anges med siffror!”)
Filhantering
För att kunna läsa innehållet i en fil eller för att kunna skriva något till en fil måste man först skapa
filobjekt i sitt program, det görs med funktionen open.
fil1 = open(”min_fil.txt”, ”r”)
fil2 = open(”ny_fil.txt”, ”w”)
while True:
rad = fil1.readline()
if rad == ””:
break
fil2.write(rad)
# Öppnar en fil för att läsa från den
# Öppnar en fil för att skriva till den
# Läser en rad i min_fil.txt
# Kollar om vi kommit till slutet av filen
# I så fall hoppar vi ur loopen
# Skriver raden vi läste från min_fil.txt till filen ny_fil.txt
När man anropar den inbyggda funktionen open så returneras ett så kallat filobjekt. I det filobjektet
finns olika metoder1 av vilka du bör kunna använda följande:
f1.readline()
f1.readlines()
f1.read()
f2.write(”Hej”)
f2.close()
1
# Läser en rad och hoppar sen ner till nästa rad, returnerar en textsträng
# Läser alla rader, returnerar en lista med alla rader
# Läser alla rader, returnerar en textsträng med alla rader
# Skriver en sträng till filen
# Stänger filen
En metod är som en funktion med den skillnaden att den koms åt via ett objekt. objektnamn.metodnamn()
4