OBS!
Fönstret är för smalt för att använda pythonlabbet.se. Använd en enhet med tangentbord!
Referens
Klicka på en funktion för att läsa mer.
Grunder del 1
Syntax
Kort beskrivning
break
break avbryter kod som repeteras
Exempel
while True:
print('Du är fin!')
svar = input('Ska jag sluta säga det? Skriv ja i så fall.')
if svar == 'ja':
break
Förklaring
break avbryter kod som repeteras. Till exempel när while används.
continue
continue avbryter en repetition och påbörjar nästa
Exempel
i = 0
while i < 100:
if i % 2 == 0: # fortsätt med nästa repetition om i är delbart med 2
continue
print(i,'är ett udda tal')
Förklaring
continue avbryter körningen i nuvarande repetition/iteration och fortsätter med nästa repetition. Används i while-satser och for-satser.
elif
elif är en kombination av else och if
Exempel #1
temp = int(input('Vad är temperaturen?'))
if temp > 20:
print('Varmt och skönt!')
elif temp > 0: #om temp <= 20 och temp > 0
print('Inte jättekallt, men inte så varmt heller.')
Exempel #2
tal = int(input('Skriv in ett heltal'))
if tal == 0:
print('Du skrev in talet 0.')
elif tal > 0:
print('Du skrev in ett positivt tal.')
else:
print('Du skrev in ett negativt tal.')
Förklaring
elif används enbart efter if. Det är en kombination av else och if, det vill säga ANNARS (det ovan är falskt) och OM (ifall det nya villkoret är sant). Villkoret vid elif testas endast om villkoret vid if är falskt.
Syntax
elif villkor:
villkor
Obligatorisk. Något som är True eller False.
else
else kan användas sist i en if-sats
Exempel
ålder = int(input('Hur gammal är du?'))
if ålder >= 18:
print('Du är vuxen!')
else:
print('Du är inte vuxen.')
Förklaring
else används enbart i slutet av ett block som startar med if och koden under else körs endast om villkort vid if är falskt.
float()
Konverterar till typen float (decimaltal)
Exempel
float('0.01') #konverterar strängen '0.01' till 0.01
float(10) #konverterar heltalet 10 till 10.0
Förklaring
Funktionen float() konverterar argumentet till typen float (decimaltal). Vanligtvis är argumentet en textsträng eller ett heltal.
Syntax
float(number)
Argument
number
Ett tal på formen av en textsträng eller ett heltal.
if
if styr koden att göra olika beroende på ett villkor
Exempel #1
tal = 10
if tal == 10:
print('Talet är lika med 10.') #detta kommer skrivas ut
Exempel #2
tal = int(input('Skriv in ett heltal'))
if tal == 0:
print('Du skrev in talet 0.')
elif tal > 0:
print('Du skrev in ett positivt tal.')
else:
print('Du skrev in ett negativt tal.')
Förklaring
if används för att styra vad programmet gör beroende på ett villkor. Om villkoret är sant körs koden i if-blocket. För att styra
vad som händer om villkoret inte är sant, kan elif och else användas.
Syntax
if villkor:
villkor
Obligatorisk. Något som är True eller False.
input()
Tar emot indata från användaren
Exempel
svar = input('Vad heter du?') #Användarens svar sparas i variablen svar
Förklaring
Funktionen input() låter användaren skriva indata till programmet. Det går att skicka med en text som beskriver vad som ska skrivas in.
Syntax
input(prompt)
Argument
prompt
En valfri text användaren får se.
int()
Konverterar till typen int (heltal)
Exempel
int(42) #konverterar strängen '42' till 42
int(3.94) #konverterar decimaltalet 3.94 till 3
Förklaring
Funktionen int() konverterar argumentet till typen int (heltal). Vanligtvis är argumentet en textsträng eller ett decimaltal.
Syntax
int(number)
Argument
number
Ett tal på formen av en textsträng eller ett decimaltal.
print()
Skriver ut text eller en variabels innehåll på skärmen
Exempel #1
print('Hello World') #skriver ut "Hello World"
print(1+1) #skriver ut talet 2
print(x) #skriver ut innehållet i variablen x
Exempel #2
print('Hello World', end='') #skriver ut "Hello World" utan att göra ny rad
Exempel #3
print('Hej','på','dig') #Skriver ut "Hej på dig"
print('Hej','på','dig',sep=' | ',end='!') #skriver ut "Hej | på | dig!" utan ny rad på slutet.
Förklaring
Funktionen print() skriver ut en textsträng på skärmen. Försöker automatiskt omvandla det som ska skrivas ut till text.
Syntax
print(*object, sep=' ', end='\n')
Argument
*object
Obligatorisk. Ett eller flera objekt som ska skrivas ut. Separera objekten med kommatecken.
sep
Tecken för att avskilja objekten som skrivs ut. Som standard mellanrum.
end
Tecken som avslutar texten som skrivs ut. Som standard "\n" - vilket betyder ny rad.
randint()
Konverterar till typen randint (heltal)
Exempel
from random import randint
kast = randint(1,6) #ett slumptal 1-6
Förklaring
Funktionen randint() genererar ett slumptal mellan två heltalsvärden a och b så att a <= N <= b. randint finns i module random.
Syntax
randint(a,b)
Argument
a
Det minsta slumptal som kan genereras.
b
Det största slumptal som kan genereras.
round()
Avrundar ett tal
Exempel #1
round(7.89) #avrundar till 8
round(1.23) #avrundar till 1
Exempel #2
round(1.23456,2) #avrundar 1.23
round(1.23456,4) #avrundar till 1.2346
Förklaring
Funktionen round() avrundar ett decimaltal. Som standard till ett heltal, det går att ställa in round() till att avrunda till godtyckligt antal decimaler.
Syntax
round(number, decimalplaces = 0)
Argument
number
Obligatoriskt. Talet som ska avrundas.
decimalplaces
Antal decimaler som talet ska avrundas till. Som standard satt till 0.
str()
Konverterar till typen sträng
Exempel #1
str(2.71) #konverterar decimaltalet 2.71 till strängen '2.71'
str(10) #konverterar heltalet 10 till '10'
Exempel #2
ålder = 15
print('Du är ' + str(ålder) + ' år gammal.')
Förklaring
Funktionen str() konverterar argumentet till en sträng. Ofta är argumentet ett heltal eller ett decimaltal. Det kan också vara betydligt mer komplexa datatyper som går att konvertera till strängar.
Syntax
str(object)
Argument
object
Ett objekt som kan konverteras till en sträng.
while
while används för att repetera kod
Exempel
n = int(input('Hur många tal vill du skriva ut?'))
i = 1
while i <= n:
print(i)
i = i + 1
Förklaring
while repeterar koden i blocket så länge villkoret är sant.
Syntax
while villkor:
villkor
Obligatorisk. Något som är True eller False. Måste bli falskt någon gång för att while-blocket ska lämnas.
while-satsen
I det här avsnittet kommer du att lära dig om
Loopar (repetera kod) med while
Vad continue är
Vad break gör
Enkla loopar med while
En annan oerhört viktig del inom programmering är att kunna köra samma kod om och igen. En loop är kod som repeteras tills villkoret för att loopen ska fortsätta inte längre är uppfyllt.
I de flesta programmeringsspråk finns den så kallade while-satsen. I Python skriver vi while villkor:, det repeterar en bit kod medans (engelska: while) villkoret är sant.
Exempel
En while-sats används för att skriva ut talen ett till tio.
x = 1
while x <= 10:
print(x)
x = x + 1
x = 1
while x <= 10:
print(x)
x = x + 1
I exemplet ovan startar x med värdet ett. På rad 2 kommer programmet till while och testar om x <= 10, och det är ju sant.
Då tar vi oss ner i kodblocket under while, skriver ut 1 och sedan ges x + 1 till x. Vi adderar helt enkelt ett till x (plussar på x med 1) och x är nu lika med två.
Eftersom vi är i en while-loop kommer vi tillbaka till rad 2 och testar om x fortfarande är mindre eller lika med 10. Det stämmer ju (x = 2), så vi kör koden inuti while-satsen igen.
Programmet fortsätter på det här viset tills 10 skrivs ut och värdet 11 sparas i x.
Då när programmet kommer tillbaka till rad 2 stämmer det inte längre att x <= 10, därmed är vi klara med while-satsen.
Det är förståeligt om du tycker att x = x + 1 ser konstigt ut. Inom matematiken betyder det något helt annat.
Därför är det viktigt att här komma ihåg att = betyder tilldelning i Python (och de flesta programmeringsspråk).
Det är väldigt viktigt att du förstår exemplet och texten ovan så läs gärna om det tills du förstår det. Var inte heller rädd för att experimentera med koden.
Fundera på: vad händer om vi missar att öka x med ett i varje loop?
Ändra i while-loopen så att endast udda tal mellan 1 och 10 skrivs ut (talet 1 ska vara med).
-- Programmets utskrifter --
Kom du på vad som händer om vi glömmer öka x med ett för varje loop eller för varje iteration som det också kallas?
Då kommer aldrig loopen att avslutas och vi får en oändlig loop. Alla programmerare råkar förr eller senare ut för en oändlig loop, det är en ganska vanlig bugg.
Exempel
En oändlig loop. Om du kör koden nedan kan det till slut krascha din webbläsare. Därför finns stopp-knappen! Den är bra att ha när programmet råkat hamna i en oändlig loop.
Kan du ändra koden så att programmet stannar?
x = 0
while x < 5:
print(x)
x = 0
while x < 5:
print(x)
Exempel - ett enkelt "spel"
I det här enkla spelet ska du gissa på vad resultatet av en beräkning är. Om du gissar smart kan du ganska snabbt hitta svaret! Påminnelse: operatorn % betyder rest vid division.
x = -1
facit = 124861357 % 107
while x != facit:
x = int( input('Vad tror du 124861357 % 107 är?') )
if x < facit:
print('Du gissade för litet.')
elif x > facit:
print('Du gissade för stort.')
print('Du gissade på ' + str(x) + ' och det är rätt!')
x = -1
facit = 124861357 % 107
while x != facit:
x = int( input('Vad tror du 124861357 % 107 är?') )
if x < facit:
print('Du gissade för litet.')
elif x > facit:
print('Du gissade för stort.')
print('Du gissade på ' + str(x) + ' och det är rätt!')
Så här fungerar programmet i stora drag: Loopen körs medan gissningen inte är lika med facit. Väl inne i loopen får x värdet av den nya gissningen. Vi testar om x är större än eller mindre än det rätta svaret
och skriver ut något lämpligt. När while slutligen ser att x != facit är falskt (vi har ett rätt svar), så avbryts loopen, och vi skriver ut att användaren gissat rätt.
break och continue
För att avbryta en loop under körning används break. För att forsätta med nästa iteration utan att köra mer kod i nuvarande iteration, används continue.
Som vi ser i exemplet nedan kan break till exempel användas om man alltid vill köra koden i loopen minst en gång.
Exempel
Koden i while-loopen körs alltid minst en gång. Villkoret för att avbryta while-satsen ligger i slutet istället. Med while True: körs loopen tills den avbryts.
while True:
svar = input('Vilket år blev Gustav Vasa kung?')
if svar == '1523':
break
while True:
svar = input('Vilket år blev Gustav Vasa kung?')
if svar == '1523':
break
print('Grattis! Du lyckades rymma från loopen!')
Exempel
Ett program som skriver ut roten ur (vilket är samma sak som att ta upphöjd till en halv) på input. Om användaren ger ett negativt tal används continue för att inte beräkna roten ur på ett negativt tal. Noll används för att avsluta.
while True:
tal = float( input('Vad vill du ta roten ur av? (Avsluta med 0)') )
if tal < 0:
continue
elif tal == 0:
break
print(tal**0.5)
while True:
tal = float( input('Vad vill du ta roten ur av? (Avsluta med 0)') )
if tal < 0:
continue
elif tal == 0:
break
print(tal**0.5)
Exempel - är talet ett primtal?
Nu ska vi göra ett enkelt test av ett heltal för att se om det är ett primtal.
Ett primtal är bara delbart med sig själv och ett.
Vi testar helt enkelt om det finns något tal som motsäger det.
Vi behöver inte testa att dividera tal som är större än roten ur talet. Varför?
Om du provar några stora slumpmässiga tal så får du se att det är ganska svårt att hitta på ett stort primtal.
tal = int( input('Vilket tal vill du testa?') )
x = 2
primtal = True
while x <= tal ** 0.5:
if tal % x == 0:
primtal = False
break
x = x + 1
if primtal:
print(str(tal) + ' är ett primtal.')
else:
print(str(tal) + ' är INTE ett primtal.')
tal = int( input('Vilket tal vill du testa?') )
x = 2
primtal = True
while x <= tal ** 0.5:
if tal % x == 0:
primtal = False
break
x = x + 1
if primtal:
print(str(tal) + ' är ett primtal.')
else:
print(str(tal) + ' är INTE ett primtal.')
print('Det är delbart med ' + str(x) + '.')