Lär dig programmera Python med denna snabba genomgång.
[toc]
Installation av Python
Innan vi börjar gå igenom varje segment av nybörjarguiden så behöver du ladda ner och installera Python. Om du använder en gammal version före 3.6, kommer inte den här guiden att vara kompatibel med din version.
Det gör du på Pythons officiella sajt – https://www.python.org/downloads/
När du installerar Python så kommer de att fråga dig om du vill ”Add Python to Path”.
PATH är en enviroment variabel i Windows. Det berättar i princip kommandotolken vilka mappar den ska titta i när du försöker hitta en fil. Om du inte lade till Python till PATH skulle du behöva göra det från kommandoraden så här:
C:/Python36/Python python_script.py
Om du lägger till det i PATH kan du göra så här:
python python_script.py
Uppsättning av Visual Studio Code (VS code)
När vi ska skriva kod behöver vi bara en textfil och kommandotolken men något som gör utvecklandet både lättare och roligare är ett verktyg som t.ex Visual Studio Code.
Ladda ner senaste versionen från https://code.visualstudio.com/
Installera Python extention till VS-Code
För att göra utvecklingen av Python lättare kan vi lägga till ett tillägg i VS-Code, tryck på tillägg och sök efter Python. Installera tillägget likt bilden nedan.
Vad används Python till?
Innan vi börjar så med genomgången av Python så tänkte jag berätta om vad Python är och hur det kan användas.
Python är ett sk. ”General-purpose programming language” dvs ett allmänt programmeringsspråk.
General-purpose programming language är ett programmeringsspråk är utformat för att användas till att skriva programvara i det bredaste utbudet av applikationer (ett allmänt språk). Ett programmeringsspråk för allmänna ändamål har denna status eftersom det inte innehåller språkkonstruktioner som är utformade för att användas inom en specifika applikationer.
Idag används Python mest till att bygga:
- Webbapplikationer
- Machine Learning (ML)
- Data Science-relaterade uppgifter.
Data Types eller Datatyper
För att vi ska få en grundförståelse om hur Python läser kod ska vi börja med att gå igenom Datatyper.
Int / Nummer
Int eller Integer är ett helt nummer och som inte innehåller decimaler. Det kan även vara ett negativt nummer.
Exempel på Nummer
272727
-272727
Float
En float är ett nummer med decimal. Även om det är ett helt nummer som t.ex. 8.0 så tillhör det datatypen float. Det kan även vara ett negativt nummer, så länge det har en decimal.
Exempel på Floats
272727.27
272727.0
-272727.27
String / Strängar
En sträng är en sekvens av nummer eller karaktärer. Strängar lagrar tecken (bokstäver, nummer och symboler), och används varje gång man vill skriva ut ett läsbart meddelande på skärmen.
En sträng skrivs med citattecken, ”så här” eller ’så här’. Det spelar ingen roll vilket citattecken du använder när du skriver en sträng, både dubbla citattecken (”) eller enkla citattecken (’) fungerar.
Exempel på Strängar
"Hello world"
'Hello world'
"4.2"
'4.0'
Bool / Booleans
Booleans är ett av två värden, True eller False. Ibland användas även True som Ett och False som 0.
Exempel på Booleans
True
False
Output & Printing
I Python finns en grundfunktion som heter print. Den här funktionen skriver ut resultatet när du kör din funktion.
För att en sträng ska skrivas ut i Shell använder man funktionen print
:
>>> print("Hej!")
"Hej!"
Om du ska skriva ut en sträng behöver du ha med citattecken annars förstår inte programmet hur de ska tolka Hej! i funktionen, eftersom Hej! inte är en av Grunddatatyperna i Python.
>>> print(Hej!)
SyntaxError: invalid syntax
Om vi istället skulle skriva print(4.5) kommer programmet förstå att 4.5 är en float och skulle därför skriva ut 4.5.
>>> print(4.5)
4.5
Om du vill skriva ut fler saker så kan du separera dessa med ett kommatecken.
>>> print("Hej!", 4.5)
Hej! 4.5
Vill du avsluta din rad på ett speciellt sätt kan du använda end=. Ett vanligt fall där vi använder kan vara end=’\n’. Det innebär att funktionen går vidare till nästa rad.
T.ex
>>> print("Hej!", 4.5, end='\n')
>>> print("Hej!")
Hej! 4.5
Hej!
Variables eller Variabler i Python
Variabler är till för att lagra data i ett program. Variabler är en viktig del i varje applikation och i Python är de relativt enkla att förstå och skapa.
Du kan tänka på en variabel som en behållare för att lagra data.
Ett exempel på hur du använder en variabel
hello = "Hej Max"
>>> print(hello)
Hej Max
Hur vet då Shell att hello är en variabel? Jo, eftersom den är definierad tidigare i koden.
Exempel på hur du använder flera variabler i samma output
hello = "Hej"
namn = "Max"
>>> print(hello, namn)
Hej Max
Du kan även använda en variabel i en annan variabel.
Exempel
hello = "Hej"
namn = hello
>>> print(hello, namn)
Hej Hej
Viktigt att komma ihåg är att koden läses in uppifrån och kan ändras. Dvs om du skulle lägga till namn = ”Tjena” så kommer output bli Hej Tjena.
Exempel
hello = "Hej"
namn = hello
namn = "Tjena"
>>> print(hello, namn)
Hej Tjena
Namnconventioner (Naming Convention) för variabler i Python.
Variabelnamn får inte innehålla bokstäverna å, ä, ö, några mellanslag ( ) eller bindestreck (-). Ett annat krav är att de inte får börja med en siffra. Du får däremot använda _ som i hello_world och avsluta med en siffra som i hello_world123.
I andra språk är det vanligt att använda Stor bokstav för att skriva variabler som har flera ord. T.ex. storBokstav. Men i Python använder du istället snake case alltså stor_bokstav.
Snake case innebär att du ersätter varje mellanslag med underscore, underline, understräck eller understrykningsstreck.
Input
När vi bygger ett program eller en applikation behöver vi ofta samla in användardata. De flesta program använder en dialogruta medan Python har två inbyggda funktioner för att läsa av inputs från användaren.
input ( prompt )
Funktionen input() fångar upp inmatningen från användaren och identifierar om användaren har skrivit en sträng, nummer eller en lista.
>>> input('Namn: ')
Namn:
Så hör gör du när du vill samla användardatan i en variabel för att använda senare.
namn = input('Namn: ')
>>> print(name)
Max
Du kan även fånga upp fler inputs från användaren genom att lägga till fler inputs i koden.
namn = input('Namn: ')
age = input('Ålder: ')
För att kombinera dessa variabler i ett program kan du göra som i exemplet nedan.
namn = input('Namn: ')
age = input('Ålder: ')
>>> print('Hej', namn, "du är bara", age, 'år gammal')
Hej Max, du är bara 8 år gammal.
Aritmetisk operator / Arithmetic operator
Aritmetisk operator är en funktion som utför en räkneoperation med hjälp av två värden.
Enkelt översatt innebär det uträkningar med
- Addition
- Subtraktion
- Multiplikation
- Division
När vi arbetar med aritmetiska operatorer så är det viktigt att båda värden är av samma datatyp eller att båda är nummer. När du gör en uträkning med division kommer du alltid att få tillbaka ett värde av datatypen float.
x = 9
y = 3
resultat = x + y
>>> print(resultat)
12
Du kan alltid konvertera float till integer genom att använda int().
x = 9
y = 3
resultat = int(x / y)
>>> print(resultat)
3
Användargenererade nummer med Input återger alltid strängar.
nummer = input('Nummer: ')
>>> print(numer - 1)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Därför behöver du konvertera strängen från input-funktionen till ett nummer. Det gör du genom att använda int() eller float().
nummer = input('Nummer: ')
>>> print(int(numer) - 1)
Strängmultiplicering
Det går att multiplicera en sträng med ett nummer och då skriver python precis som i koden. X gånger ”hello”. Det fungerar så länge strängen är på vänstersida. I detta fall som X.
x = "hello"
y = 3
>>> print(x * y)
hellohellohello
String Methods
För att vi ska förstå vad en String Method är så kommer jag börja att visa er ett exempel. Här använder jag den inbyggda funktionen type(). Om vi använder den på en sträng kommer den berätta för oss vilken datatyp som finns i variabeln.
hello = 'hej'
>>> print(type(hello))
<class 'str'>
Nästan allt i Python är ett objekt. Varje objekt har vissa attribut och metoder. Förbindelsen mellan attributen eller metoderna med objektet indikeras av en punkt (”.”) skriven mellan dem.
Så punkten gör det möjligt att komma åt attribut, metoder och instanser för en klass och att få tillgång till attribut och metoder för klassinstanser.
Exempel på String Methods
hello = 'Hej'
>>> print(hello.upper())
HEJ
hello = 'Hej'
>>> print(hello.lower())
hej
hello = 'hej'
>>> print(hello.capitalize())
Hej
.count(’H’) används för att räkna ut antalet ”H” som finns i strängen vi applicerat metoden på. Viktigt att tänka på att metoden är känslig för caps.
hello = 'hej'
>>> print(hello.count('h'))
1
Låt säga att vi har en sträng som innehåller blandade små och stora bokstäver och vill söka i den strängen efter en viss bokstav eller kombination. Då kan vi använda ytterliggare en method, .lower() för att säkerställa att alla tecken är i lower case.
hello = 'hej Hansson'
>>> print(hello.lower().count('h'))
2
Skulle vi inte använda .lower() kommer vi enbart att hitta 1 av ’h’.
Conditional Operators
Här är en lista med de vanligaste operatörerna. De besvaras med True eller False.
== lika med
!= inte lika med
<= mindre än lika med
>= större än lika
< mindre än
> större än
Exempel på användning.
Jag vill kontrollera om x är lika med y.
x = "hej"
y = "hej"
>>> print(x == y)
True
och tvärt om.
x = "hej"
y = "hej"
>>> print(x != y)
False
En annan intressant sak är att det går att jämföra strängar.
Exempel
>>> print('a' > "Z")
true
Hur kan då a vara större än Z? Det här beror på att varje bokstav i Python är representerad med ett ascii-värde. Du kan hitta ascii-värdet av bokstaven med hjälp av den inbyggda funktionen ord().
>>> print(ord('a'))
97
If / Else / Elif
Ett Python-program består av ett antal satser (eng. statements) som
utförs i tur och ordning. Ett av de mest användbara satserna (statements) i Python är If/else/Elif. Det gör att vi kan ta ett val / beslut baserat på om ett visst villkor är uppfyllt eller inte. En if-sats har ett villkor som alltid resulterar i True eller False.
x = input('Namn: ')
if x == 'Max':
print('Det är ditt namn')
I kodsnutten frågar jag användaren efter hens namn. Är namnet Max, skrivs meningen ’Det är ditt namn’ ut.
x = input('Namn: ')
if x == 'Max':
print('Det är ditt namn')
else:
print('Hej då')
I de fall namnet inte är ’Max’ kommer koden skriva ut raden under Else. Else måste komma efter if-satsen.
x = input('Namn: ')
if x == 'Max':
print('Det är ditt namn')
elif: x == 'Lukas':
print('Hej Lukas')
else:
print('Hej då')
Elif kan användas så många gånger vi vill men måste vara efter if-satsen och före else-satsen. Du kan alltså inte använda elif-satsen varsomhelst.
x = input('Namn: ')
if x == 'Max':
print('Det är ditt namn')
elif: x == 'Lukas':
print('Hej Lukas')
else:
print('Hej då')
Du kan alltid använda en if-sats i en annan if-sats om du skulle vilja kontrollera fler villkor.
Objektsamlingar (Collections)
En samling (eng. collection) är en ordnad eller oordnad samling av objekt. Vi ska titta närmare på List och tuples.
Lista
En lista skrivs med square brackets. En lista innehåller en ordnad uppsättning data. I en lista kan du använda olika typer av data, Strängar, Nummer och Bools.
#List
x = [1, 'Max', False]
För att använda din data i listan behöver du först veta hur många objekt listan innehåller. Då använder du len-funktionen, därefter hämtar du ut det objekt du vill.
x = [1, 'Max', False]
>>> print(len(x))
3
Du kan även lägga till objekt i din lista med hjälp av append-funktionen. Då adderas objektet sist i listan.
x = [1, 'Max', False]
>>> x.append('Jakob')
Du kan även sätta ihop flera listor med hjälp av extend-funktionen. Då läggs alla objekt från lista två till i slutet av lista ett.
List / Tuples
For Loops
While Loops
Slice Operator
Sets
Dicts
Comprehensions
Functions
*args & **kwargs
Scope & Globals
Exceptions
Handling Exceptions
Lambda
Map and Filter
F Strings