Göm meny
Gäller för: HT25

Storseminarium 1 - Experimentering

Innan seminariet ska du ha gått igenom Inför seminariet nedan och gjort tillhörande quiz. Syftet med detta är att du ska bekanta dig med innehållet så eventuella frågor kan redas ut under seminariet.

Denna sida visar en del av det som kommer att diskuteras på seminariet. Det kan hända att handledarna också tar upp andra uppgifter som inte behöver något specifikt studentmaterial och då syns dessa uppgifter inte på sidan.

Inför seminariet

Under seminariet

Ni kommer att arbeta med uppgifterna tillsammans i mindre grupper, där ni diskuterar och förklarar för varandra, handledarna kommer att finnas till hjälp som under vanligt labb pass. Efter varje uppgift går handledarna igenom sin lösning i helklass, då finns möjlighet att ställa frågor och presentera alternativa lösningar.

Inledande uppgift: Skapa katalog

Det är viktigt att hålla ordning på sina filer, vi utgår ifrån att ni redan har skapat en kurskatalog 729g46 eller liknande. Vi rekommenderar att ni skapar en underkatalog storsem1, där ni skapar en ny fil för varje uppgift, för de uppgifter där det är rimligt.

Variabler

Uppgift 1: Tilldelning av variabler

I följande kod tilldelas olika planetnamn till variablerna a, b, c och d. Vilka värden kommer att skrivas ut i terminalen?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
a = "Mars"
b = "Jupiter"
c = a
a = "Venus"
d = b
b = c

print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)

Listor

Uppgift 2.1: Slicing av listor

Givet följande lista, hur kan vi välja:

  • Venus - Jupiter?
  • De fyra sista?
  • Varannan planet?
  • Hela listan i omvänd ordning?
1
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

Uppgift 2.2: Bearbeta listor

Lägg till Pluto till listan med planeter. Tips: Använd +-operatorn.

1
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

Strängar

Uppgift 3: Indexera strängar

Denna variabel är given

1
name = "Ford Prefekt"

Plocka ut första bokstaven från för och efternamn och tilldela till en ny variabel initialer, och skriv ut den i terminalen. Tips: Använd +-operatorn för att konkatenera strängar.

Ni bör alltså få

FP

Sanningsvärden

Uppgift 4: Beräkna

Vilket värde har följande uttryck? (a och b är godtyckliga heltal). Diskutera, testa sedan att köra i interaktiva Python tolken.

1
2
3
4
5
6
7
8
not False
not "False"
not (3 or 0)
True and False
True == True
a < b or b < a or a == b
a == b and a != b
not ""

Villkorssatser

Uppgift 5.2: Identifiera utskriften

Vilken utskrift ger följande kod?

1
2
3
4
5
6
7
8
9
probability_of_rain = 0.75
have_umbrella = True

if probability_of_rain < 0.7:
    print("lämna paraplyet hemma")
elif have_umbrella and probability_of_rain >= 0.7:
    print("klokt att ta med paraplyet")
else:
    print("ett paraply hade varit bra")

uppgift 5.3: Identifiera utskriften

Vilken utskrift ger följande kod?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
probability_of_rain = 0.75
have_umbrella = True
have_raincoat = False
wind_intensity = 8

if probability_of_rain < 0.3:
    print("Ingen större risk för regn")
elif 0.3 <= probability_of_rain < 0.7:
    if have_umbrella or have_raincoat:
        print("Det kan börja dugga, bra att du är förberedd")
    else:
        print("Lite regn på väg, du kanske ångrar dig utan skydd")
elif probability_of_rain >= 0.7:
    if have_umbrella and wind_intensity < 10:
        print("Hög regnrisk, klokt att ta med paraplyet")
    elif have_raincoat:
        print("Bra att du har regnjacka, paraply är ändå meningslöst i blåst")
    elif have_umbrella and wind_intensity >= 10:
        print("Riskabelt med paraply i blåst")
    else:
        print("Du saknar tyvärr både regnjacka och paraply.")

Funktioner

Uppgift 6.1: Returvärden

Skriv en funktion days_to_hours(num_days) som omvandlar dagar till timmar och returnerar resultatet, t.ex:

days_to_hours(2)
48

Uppgift 6.2: Kombinera funktioner

Skriv en funktion hours_to_minutes(num_hours) som omvandlar timmar till minuter och returnerar resultatet, t.ex.

hours_to_minutes(3)
180

Kombinera nu funktionerna days_to_hours, hours_to_minutes och print. Så att med num_days = 2, så fås utskriften

2880 minuter

Kan vi skriva alla anrop på en rad?


Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2024-07-26