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