Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det interaktiva läget och standardläget (scriptläget) i Python. Om du har svårt att besvara dessa frågor, se "Den stora guiden i att öppna och spara filer i Python" som finns på bloggen. a. Hur öppnar man standardläget i Python? b. Hur sparar man kod som man har skrivit i standardläget i Python? c. Hur öppnar man en fil som man har skapat tidigare i standardläget? 2. Vad menas med att köra kod, och hur gör man det i det interaktiva läget, respektive standardläget i Python? 3. Titta på följande kod: abc = 10 number = 20.5 student_name = "Anna" Bestäm variabelnamn, värde och typ och hos dessa tre variabler. 4. Det finns vissa regler för hur man får döpa variabler i Python. Man får inte ha mellanslag i variabelnamn och man får inte ha siffror i början av variabelnamnet. Variabelnamn får bara innehålla bokstäver, siffror och understreck. Vilka av följande rader kod kommer att ge fel? Prova själv i Pythons interaktiva läge! elev_ett = "Rolf" elev ett = "Rolf" elev_1 = "Rolf" 1_elev = "Rolf" 5. Hashtag används för att skriva kommentarer i Pythonkod. Dessa kommentarer läser inte datorn, utan de är enbart där som en förklaring till koden för programmerarens skull. Vad kommer hända när man kör följande kod i standardläget i Python? Testa! 1
print("datorn läser det här!") # Det här läser inte datorn! # print("inte det här heller!") 6. Hur används den inbyggda funktionen print( )? a. Hur kan man använda funktionen för att skriva ut meddelandet "Hello World!" till användaren? b. Betrakta följande kod: namn = "Oscar" print(namn) print("namn") Vad är det för skillnad mellan de två sista raderna? Förklara vad som kommer att skrivas ut till användaren när du kör denna kod. Prova gärna och se till att du kan förklara varför det blir som det blir! 7. Titta på koden nedan, som är skriven i standardläget i Python, och se till att du förstår vad den gör. Testa koden för att säkerställa att du har tänkt rätt. namn = "Oscar" print(namn) print() # Skapar en tom rad utan text print("oscar") 8. Vad används den inbyggda funktionen input() till? 9. Titta på följande kod: namn_elev_1 = input("skriv ditt namn här--->") text = "Skriv ditt namn här--->" namn_elev_2 = input(text) Vad händer när man kör programmet? 10. Hitta samtliga fel i följande program, anta att det du ser är all kod som finns skriven i programmet. Testa att köra koden och ändra i den tills alla fel är lösta! 2
potato_counter = 10 print(potato_counter elev namn = Anna name = potato_counter print(hej, jag heter Anna!) print(name) 11. Vad används villkorssatser till i programmering? Exempel på villkorssatser: if, elif och else 12. Titta på följande kod. Se till att du förstår vad den gör. Notera hur kolon används och hur tab-tangenten (indrag) används. Det är viktigt! Testa ändra den första raden till x = 1 och sedan x = 3 och efter det x = 100. Förklara vad som händer när koden körs i de olika fallen. x = 2 if x == 1: print("nu körs if, alltså är x = 1") elif x == 2: print("inne i den första elif, x = 2") elif x == 3: print("inne i den andra elif, x = 3") print("x är varken 1, 2 eller 3") 13. Titta på följande kod x = 1 if x < 5 : print("x < 5") if x < 10: print("x < 10") elif x < 20: print("x > 9 och x < 20") Kör koden som den är en gång, och ändra sedan första raden till x = 8 och sedan till x = 15. Se till att du förstår och kan förklara varför det blir som det blir i de olika fallen. 14. Titta på följande program: 3
svar = input("sveriges huvudstad? Svar: ") if svar == "Stockholm": print("rätt svar!") print("fel svar!") Försök lista ut vad programmet gör för något. Klistra in koden i IDLE (standardläget) och prova! 15. Vad gör det här programmet? svar = input("skriv Sveriges elr Norges huvudstad: ") if svar == "Stockholm" or svar == "Oslo": print("rätt svar!") print("fel svar!") Skriv ett liknande program själv. Prova att använda and och or mellan villkor som i exemplet ovan. 16. Vad gör det här programmet? x = 1 while x < 10: print(x) x = x + 1 17. Hur skulle du kunna skriva om loopen i uppgiften ovan för att 2 4 6 8 10 skulle skrivas ut istället? Prova dig gärna fram. 18. Vad gör det här programmet? 4
for x in [2,5,1,8,22]: print(x) 19. Vad gör det här programmet? for name in ["Oscar", "Anna", "Kalle"]: print(name) 20. Vad gör det här programmet? Vad händer om du ändrar range(100) till range(50) och kör koden? for y in range(100): print(y) 21. Vad gör följande program? Vilken del av koden är funktionsdefinitionen? I vilken del anropas funktionen? def spam(): print("spam!") spam() 22. Vad gör följande program? I vilken del av koden blir funktionen definierad? Hur många parametrar definieras funktionen med? I vilken del anropas funktionen? Med vilket argument anropas funktionen? def superspam(num): for i in range(num): print("spam!") superspam(100) 23. Vad gör följande program? Vad returnerar funktionen? Med hur många parametrar definieras funktionen? Med vilka argument anropas funktionen? Vilket värde kommer att lagras i variabeln x? def summa(a, b): return a + b x = summa(3,6) 24. Vad gör följande program? Gå igenom rad för rad och förklara vad koden gör: 5
def calculator(tal_1, tal_2, op): if op == "+": svar = tal_1 + tal_2 elif op == "-": svar = tal_1 - tal_2 elif op == "*": svar = tal_1 * tal_2 elif op == "/": svar = tal_1 / tal_2 print("du måste skriva in " + "något av följande " + "tecken: + - * / " + "i det tredje argumentet " + "av funktionen" ) return svar svar_1 = calculator(10, 5, "+") svar_2 = calculator(10, 5, "-") svar_3 = calculator(10, 5, "*") svar_4 = calculator(10, 5, "/") print(svar_1) print(svar_2) print(svar_3) print(svar_4) 25. Definiera en funktion med namnet print_name, som har två parametrar: given_name och sir_name. Använd print-funktionen för att skriva ut: Förnamn: [värdet av given_name] Efternamn: [värdet av sir_name] Anropa funktionen med argumenten "Molly", "Svensson" så att funktionen skriver ut: Förnamn: Molly Efternamn: Svensson 6