Python: Skillnad mellan sidversioner

Från Wikiskola
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
(22 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]}}
==Lathund Python 3 ==  
==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'''].


<pre>
För att köra programmet: Installera en [https://www.python.org/downloads/windows/ interpreterare]: exempelvis Download Windows x86-64 web-based installer.
#----------------------Python3 lathund----------------------
* Öppna ett kommandofönster (Python shell).
* Öppna en ny fil och klipp in koden och spara.
* Välj Run.


#----Detta är endast en lathundm så allt kommer inte vara med.
Alternativ webmiljöför att köra koden i browsern: https://repl.it/
#----Om du har funderingar så kan du öppna pythons dokumentation.  


=== Print och variabler ===
<pre>
"""Detta är en kommentar som  
"""Detta är en kommentar som  
kan gå över flera
kan gå över flera
Rad 23: Rad 32:


bakstav = str(3) # bokstav blir en sträng  
bakstav = str(3) # bokstav blir en sträng  
</pre>


#----------------------if-satser----------------------
===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 34: Rad 45:
else:
else:
print("Du är mer än 3 år")
print("Du är mer än 3 år")
</pre>


#----------------------Listor----------------------
===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 52: Rad 65:
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. 


#----------------------For-loopar----------------------
<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 64: Rad 105:
"""
"""


#----------------------While-loopar----------------------
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 77: Rad 129:
3
3
"""
"""
</pre>


#----------------------Funktioner----------------------
===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 86: Rad 140:
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 skriva ut "hejsan"


"""funktionen över kommer skriva ut:
"""funktionen över kommer skriva ut:
Rad 94: Rad 149:
2
2
"""
"""
</pre>


#----------------------Klasser----------------------
===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():
"""
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
"""
#Alla klasser måste ha en __init__ metod
#Alla klasser måste ha en __init__ metod
#Den anropas varje gång du skapar ett objekt av din klass
#Den anropas varje gång du skapar ett objekt av din klass
Rad 125: Rad 178:
#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)


print(mitt_objekt)  
print(mitt_objekt)  
Rad 135: Rad 189:
Pelle 2 ["snäll", "fin"]
Pelle 2 ["snäll", "fin"]
"""
"""
</pre>


#----------------------Filhantering----------------------
===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 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: <br />
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"
ex: filen ligger i en mapp som heter skrifter skriver du "skrifter/text.txt" """
<pre>
""""""
fil = open("text.txt", "r", encoding = "utf-8")
fil = open("text.txt", "r", encoding = "utf-8")


Rad 153: Rad 209:
radLista3 = rad.split("-|-") # delar med avseende på "-|-"
radLista3 = rad.split("-|-") # delar med avseende på "-|-"
</pre>
</pre>
== 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.

Versionen från 31 mars 2018 kl. 08.10

Programmeringsuppgift

Matematikuppgifter i Python


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 skriva ut "hejsan"

"""funktionen över kommer skriva ut:
Här kan  du skriva kod för en funktion
hej
2
"""

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å "-|-"

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.