Python: Skillnad mellan sidversioner
Jens (diskussion | bidrag) Ingen redigeringssammanfattning |
Hakan (diskussion | bidrag) |
||
(28 mellanliggande sidversioner av 2 användare visas inte) | |||
Rad 1: | Rad 1: | ||
= | [[Kategori:Python]] | ||
{{Python|[https://wikiskola.se/index.php?title{{=}}Kategori:Python Matematikuppgifter i Python]}} | |||
== Lär mer - Andra kurser och böcker == | |||
[http://www.oscillator.se/skola#pim PIM, Programmering i Matematik] vänder sig till grundskolans år 7-9 och är en utmärkt introduktion. | |||
[https://docs.google.com/document/d/1YbgtBXISXVTCpB4Yh9Gnrkg8UtG0cThyYaEE2pDuMoQ/edit?usp=sharing Pythonkurs Skapad av Fredrik Frippe Johansson, CC.] | |||
[https://snakify.org/ Snakify] en bra kurs för lärare. Du kör i deras snygga miljö i browsern. | |||
Fredrik Johanssons [http://fabelmakaren.se/2019/02/26/lararhandledning-i-python/ Lärarhandledning i Python], Creative Commons | |||
==Lathund Python 3 == | |||
[http://www.csc.kth.se/utbildning/kth/kurser/DD1310/prgs14/P/py-lista.html Länk till programmeringsuppgifter] som används på KTH. | |||
Detta är endast en lathundm så allt kommer inte vara med. | |||
Om du har funderingar så kan du öppna [https://docs.python.org/3/ '''pythons dokumentation''']. | |||
För att köra programmet: Installera en [https://www.python.org/downloads/windows/ interpreterare]: exempelvis Download Windows x86-64 web-based installer. | |||
* Öppna ett kommandofönster (Python shell). | |||
* Öppna en ny fil och klipp in koden och spara. | |||
* Välj Run. | |||
Alternativ webmiljöför att köra koden i browsern: https://repl.it/ | |||
=== Print och variabler === | |||
<pre> | |||
"""Detta är en kommentar som | """Detta är en kommentar som | ||
kan gå över flera | kan gå över flera | ||
Rad 14: | Rad 33: | ||
#Detta är också en kommentar, men går bara över en rad | #Detta är också en kommentar, men går bara över en rad | ||
# | print("Hejsan") | ||
ålder = 3 | |||
namn = input("vad heter du?") # frågar användaren vad den heter och läser in det som skrivs in | |||
siffra = int("3") # siffra blir en int | |||
bakstav = str(3) # bokstav blir en sträng | |||
</pre> | |||
===if-satser=== | |||
Verifierar om ett påstående är '''True''' eller '''False''' <br /> Om inte den första if-satsen stämmer jämförs nästa '''elif''' osv. Om ingen stämmer kommer '''else''' köras. | |||
<pre> | |||
if (ålder < 2): | if (ålder < 2): | ||
print("du är under 2") | print("du är under 2") | ||
Rad 24: | Rad 55: | ||
else: | else: | ||
print("Du är mer än 3 år") | print("Du är mer än 3 år") | ||
</pre> | |||
===Listor=== | |||
Du skapar en tom lista genom att skriva <nowiki>[ ]</nowiki> och lägga den tomma listan i en variabel. I listan kan du lägga in saker som strängar, siffror, andra listor osv. | |||
<pre> | |||
lista = ["hej", "vad", ålder, 32, ["hej", "igen"]] | lista = ["hej", "vad", ålder, 32, ["hej", "igen"]] | ||
Rad 42: | Rad 75: | ||
x = lista.pop(0) # tar ut elementet på plats 0 och sparar värdet i variablen x | x = lista.pop(0) # tar ut elementet på plats 0 och sparar värdet i variablen x | ||
</pre> | |||
=== Dictionaries === | |||
En Dictionary är som en ordlista. Ett verktyg för att koppla ihop saker. | |||
<pre> | |||
din_dictionary = {"Hejsan": "Hello", "Hejdå": "Good Bye", "egenskaper": ["fin", "snäll", "lång"] } | |||
print( din_dictionary["Hejsan"] ) | |||
"""Kommer skriva ut: | |||
Hello | |||
""" | |||
print( din_dictionary["egenskaper"] ) | |||
"""Kommer skriva ut: | |||
["fin", "snäll", "lång"] | |||
""" | |||
# | #Om du vill lägga till kopplingar i din dictionary skriver du: | ||
din_dictionary["ålder"] = 18 | |||
print( din_dictionary["ålder"] ) | |||
"""Kommer skriva ut: | |||
18 | |||
""" | |||
</pre> | |||
===for-loopar=== | |||
For-loopar används föratt iterera över något, eller bara upprepa något ett antal gånger. | |||
<pre> | |||
for i in range(3): | for i in range(3): | ||
print(i, "denna printsats kommer köra 3 gånger") | print(i, "denna printsats kommer köra 3 gånger") | ||
Rad 54: | Rad 115: | ||
""" | """ | ||
lista = ["h", "e", "j"] | |||
for bokstav in lista: | |||
print(bokstav) | |||
"""kommer skriva ut: | |||
h | |||
e | |||
j | |||
"""" | |||
</pre> | |||
===while-loopar=== | |||
Upprepar kod tills ett villkor är uppfyllt. I exemplet så körs while-loopen så länge variabeln ålder är mindre än 4. | |||
<pre> | |||
ålder = 0 | ålder = 0 | ||
while ålder < 4: | while ålder < 4: | ||
Rad 67: | Rad 139: | ||
3 | 3 | ||
""" | """ | ||
</pre> | |||
===Funktioner=== | |||
En funktion är som att lägga flera rader kod i en variabel, så när funktionen anropas körs koden i funktionen.<br />En funktion kan ta in parametrar, när funktionen skrivs så tolkas de som variabler utan värde, men när man anropar funktionen får de ett värde.<br />Värden kan returneras genom att skriva '''return''' och sedna det som du vill skicka ur funktionen. Det värdet kan du lägga i en variabel som i exempelkoden nedan. | |||
<pre> | |||
def funktion(parameter1, parameter2): | def funktion(parameter1, parameter2): | ||
print("Här kan du skriva kod för en funktion") | print("Här kan du skriva kod för en funktion") | ||
Rad 76: | Rad 150: | ||
return "hejsan" | return "hejsan" | ||
x = funktion("hej", 2) #x kommer vara "hejsan" eftersom "hejsan" returnas från funktionen | x = funktion("hej", 2) # x kommer vara "hejsan" eftersom "hejsan" returnas från funktionen | ||
print(x) # kommer at köra printsatserna samt skriva ut "hejsan" | |||
"""funktionen | """funktionen ovan kommer att skriva ut: | ||
Här kan du skriva kod för en funktion | Här kan du skriva kod för en funktion | ||
hej | hej | ||
2 | 2 | ||
hejsan | |||
""" | """ | ||
</pre> | |||
===Klasser=== | |||
En klass är en beskrivning av objekt, vilka attribut den ska ha och vilka metoder.<br /> | |||
'''Attribut''': Ett värde som objektet har<br /> | |||
'''Metod''': En funktion som du kan anropa på ett objekt för att använda/ändra information hos ett specifikt objekt<br /> | |||
<pre> | |||
class Klass(): | class Klass(): | ||
#Alla klasser måste ha en __init__ metod | #Alla klasser måste ha en __init__ metod | ||
Rad 109: | Rad 189: | ||
#skapar ett objekt av klassen Klass med namnet "Pelle" | #skapar ett objekt av klassen Klass med namnet "Pelle" | ||
mitt_objekt = Klass("Pelle") | mitt_objekt = Klass("Pelle") | ||
mitt_objekt.egenskaper.append("snäll") | mitt_objekt.egenskaper.append("snäll") | ||
mitt_objekt.egenskaper.append("fin") | mitt_objekt.egenskaper.append("fin") | ||
mitt_objekt.öka_ålder(2) | mitt_objekt.öka_ålder(2) | ||
Rad 117: | Rad 200: | ||
Pelle 2 ["snäll", "fin"] | Pelle 2 ["snäll", "fin"] | ||
""" | """ | ||
</pre> | |||
===Filhantering=== | |||
Om du ska läsa från en fil som heter text.txt som ligger i samma mapp som pythonfilen som körs<br /> | |||
Om filen ligger i en mapp, använd / för att gå in i mappen: <br /> | |||
ex: filen ligger i en mapp som heter skrifter skriver du "skrifter/text.txt" | |||
<pre> | |||
"""""" | |||
fil = open("text.txt", "r", encoding = "utf-8") | |||
rad = fil.readline() # läser en rad från filen och lägger informationen som en sträng i variablen rad | |||
rad.strip() #tar bort '\n' i slutet av strängen | |||
"""delar upp strängen med avseende på mellanslag och lägger delarna i en lista, skriv in en annan sträng | |||
Om du skriver in en sträng som parameter så kommer den dela upp strängen med avseende på den parametern""" | |||
radLista1 = rad.split() | |||
radLista2 = rad.split("-") # delar med avseende på "-" | |||
radLista3 = rad.split("-|-") # delar med avseende på "-|-" | |||
</pre> | </pre> |
Nuvarande version från 16 oktober 2020 kl. 08.41
Lär mer - Andra kurser och böcker
PIM, Programmering i Matematik vänder sig till grundskolans år 7-9 och är en utmärkt introduktion.
Pythonkurs Skapad av Fredrik Frippe Johansson, CC.
Snakify en bra kurs för lärare. Du kör i deras snygga miljö i browsern.
Fredrik Johanssons Lärarhandledning i Python, Creative Commons
Lathund Python 3
Länk till programmeringsuppgifter som används på KTH.
Detta är endast en lathundm så allt kommer inte vara med. Om du har funderingar så kan du öppna pythons dokumentation.
För att köra programmet: Installera en interpreterare: exempelvis Download Windows x86-64 web-based installer.
- Öppna ett kommandofönster (Python shell).
- Öppna en ny fil och klipp in koden och spara.
- Välj Run.
Alternativ webmiljöför att köra koden i browsern: https://repl.it/
Print och variabler
"""Detta är en kommentar som kan gå över flera rader """ #Detta är också en kommentar, men går bara över en rad print("Hejsan") ålder = 3 namn = input("vad heter du?") # frågar användaren vad den heter och läser in det som skrivs in siffra = int("3") # siffra blir en int bakstav = str(3) # bokstav blir en sträng
if-satser
Verifierar om ett påstående är True eller False
Om inte den första if-satsen stämmer jämförs nästa elif osv. Om ingen stämmer kommer else köras.
if (ålder < 2): print("du är under 2") elif (ålder == 2): print("Du är 2 år") elif (ålder == 3): print("du är 3 år") else: print("Du är mer än 3 år")
Listor
Du skapar en tom lista genom att skriva [ ] och lägga den tomma listan i en variabel. I listan kan du lägga in saker som strängar, siffror, andra listor osv.
lista = ["hej", "vad", ålder, 32, ["hej", "igen"]] print(lista) #kommer skriva ut #["hej", "vad", ålder, 32, ["hej", "igen"]] lista.append("hejsan") #kommer lägga till "hejsan" längst bak i listan print(lista[0]) #kommer printa "hej" print(lista[1]) #kommer printa "vad" print(lista[-1]) #kommer printa "hejsan", då den printar det sista elementet i listan x = lista.pop(0) # tar ut elementet på plats 0 och sparar värdet i variablen x
Dictionaries
En Dictionary är som en ordlista. Ett verktyg för att koppla ihop saker.
din_dictionary = {"Hejsan": "Hello", "Hejdå": "Good Bye", "egenskaper": ["fin", "snäll", "lång"] } print( din_dictionary["Hejsan"] ) """Kommer skriva ut: Hello """ print( din_dictionary["egenskaper"] ) """Kommer skriva ut: ["fin", "snäll", "lång"] """ #Om du vill lägga till kopplingar i din dictionary skriver du: din_dictionary["ålder"] = 18 print( din_dictionary["ålder"] ) """Kommer skriva ut: 18 """
for-loopar
For-loopar används föratt iterera över något, eller bara upprepa något ett antal gånger.
for i in range(3): print(i, "denna printsats kommer köra 3 gånger") """ for-loopen kommer skriva ut: 0 denna printsats kommer köra 3 gånger 1 denna printsats kommer köra 3 gånger 2 denna printsats kommer köra 3 gånger """ lista = ["h", "e", "j"] for bokstav in lista: print(bokstav) """kommer skriva ut: h e j """"
while-loopar
Upprepar kod tills ett villkor är uppfyllt. I exemplet så körs while-loopen så länge variabeln ålder är mindre än 4.
ålder = 0 while ålder < 4: print(ålder) ålder += 1 #lägger till 1 på variabeln ålder """While loopen kommer skriva ut: 0 1 2 3 """
Funktioner
En funktion är som att lägga flera rader kod i en variabel, så när funktionen anropas körs koden i funktionen.
En funktion kan ta in parametrar, när funktionen skrivs så tolkas de som variabler utan värde, men när man anropar funktionen får de ett värde.
Värden kan returneras genom att skriva return och sedna det som du vill skicka ur funktionen. Det värdet kan du lägga i en variabel som i exempelkoden nedan.
def funktion(parameter1, parameter2): print("Här kan du skriva kod för en funktion") print(parameter1) print(parameter2) return "hejsan" x = funktion("hej", 2) # x kommer vara "hejsan" eftersom "hejsan" returnas från funktionen print(x) # kommer at köra printsatserna samt skriva ut "hejsan" """funktionen ovan kommer att skriva ut: Här kan du skriva kod för en funktion hej 2 hejsan """
Klasser
En klass är en beskrivning av objekt, vilka attribut den ska ha och vilka metoder.
Attribut: Ett värde som objektet har
Metod: En funktion som du kan anropa på ett objekt för att använda/ändra information hos ett specifikt objekt
class Klass(): #Alla klasser måste ha en __init__ metod #Den anropas varje gång du skapar ett objekt av din klass #Alla metoder som skapas till klassen måste ha self som en parameter """Attributen för klassen skriv i __init__ metoden genom att skriva self.parameternamn = vilket värde det ska va""" def __init__(self, namn): self.ålder = 0 self.namn = namn self.egenskaper = [] """Objekten kommer ha attributen ålder som bärjar som 0, ett namn som skrivs in när objektet skapas och en lista som kallas egenskaper""" """__str__ metoden anropas när du printar ett objekt""" def __str__(self): return self.namn + " " + str(self.ålder) + " " + str(self.egenskaper) """Ökar objektets attribut ålder med en viss mängd""" def öka_ålder(self, mängd): self.ålder += mängd #skapar ett objekt av klassen Klass med namnet "Pelle" mitt_objekt = Klass("Pelle") mitt_objekt.egenskaper.append("snäll") mitt_objekt.egenskaper.append("fin") mitt_objekt.öka_ålder(2) print(mitt_objekt) """Kommer skriva ut: Pelle 2 ["snäll", "fin"] """
Filhantering
Om du ska läsa från en fil som heter text.txt som ligger i samma mapp som pythonfilen som körs
Om filen ligger i en mapp, använd / för att gå in i mappen:
ex: filen ligger i en mapp som heter skrifter skriver du "skrifter/text.txt"
"""""" fil = open("text.txt", "r", encoding = "utf-8") rad = fil.readline() # läser en rad från filen och lägger informationen som en sträng i variablen rad rad.strip() #tar bort '\n' i slutet av strängen """delar upp strängen med avseende på mellanslag och lägger delarna i en lista, skriv in en annan sträng Om du skriver in en sträng som parameter så kommer den dela upp strängen med avseende på den parametern""" radLista1 = rad.split() radLista2 = rad.split("-") # delar med avseende på "-" radLista3 = rad.split("-|-") # delar med avseende på "-|-"