diff --git a/conditionals/README.md b/conditionals/README.md index 88f727b..5739fdd 100644 --- a/conditionals/README.md +++ b/conditionals/README.md @@ -9,7 +9,49 @@ if True: print("Dette er alltid sant!") ``` -Vi kan sjekke om ulike ting er sant. På tall kan vi sjekke om noe er større eller mindre med krokodillen (som alltid spiser det største tallet) `>`. Ofte vil vi gjøre enten en ting eller en annen, da bruker vi `if` og `else`, altså hvis-ellers. +`if` aktiverer altså koden inne i blokken om verdien etterpå er Boolean-verdien `True`. Det er med andre ord helt likt å skrive: +```python +sant = True + +if sant: + print("Dette er alltid sant!") +``` + + +Ofte vil vi gjøre enten én ting eller en annen, da bruker vi `if` og `else`, altså hvis-ellers. + +```python +sulten = True + +if sulten: + print("Spis mat!") +else: + print("ikke spis mat!") +``` + +På samme måte som vi kan plusse sammen med tall, har vi noen egne operasjoner vi kan gjøre med datatypen `Boolean`. Vi sjekke om både en ting og en annen er sant med `and`: +```python +>>> True and True +True +>>> True and False +False +``` +Og vi sjekker om den ene ting eller den andre er sant med `or`: +```python +>>> True or False +True +>>> False or False +False +``` + +Noen operasjoner vi gjør med tall som `int` og `decimal`, gir en bool som resultat. Gjerne de som sammenligner to tall. `>` tegnet sjekker om det til venstre er større enn det til høyre (husk at krokodillemunnen vil spise det største tallet): + +```python +>>> 5 > 6 +False +``` + +Vi kan sjekke sjekke om en person er gamle nok til å ta lappen med `>=`, "større eller lik"-tegnet: ```python if alder >= 18: @@ -18,23 +60,15 @@ else: print("Du er for ung for lappen.") ``` -Hvis vi vil legge til støtte for moped også kan vi sjekke flere ting etter hverandre med `elif` som er kort for "else if", altså ellers hvis. +(Hvorfor ville det blitt feil å bruke `>` ?) + +Hvis vi vil legge til støtte for moped også kan vi sjekke flere ting etter hverandre med `elif` som er kort for "else if", altså ellers hvis. Vi sjekker kun alternativ nummer 2 om alternativ nummer 1 ikke er sant. ```python if alder >= 18: - print("Du kan ta lappen for bil") + print("Du kan ta lappen for bil og moped") elif alder >= 16: print("Du kan ta bare ta lappen for moped") else: print("Du kan i det minste sykle") ``` - -Ofte skal vi utløse en eller annen kode om flere ting stemmer samtidig, da kan vi kombinere booleans med `and`: - -```python -if red and green and blue: - print("Fargen er hvit") -elif red and green: - print("Fargen er gul!") -etc. -``` \ No newline at end of file diff --git a/conditionals/valid_baggage.py b/conditionals/valid_baggage.py index b9e5678..d75007c 100644 --- a/conditionals/valid_baggage.py +++ b/conditionals/valid_baggage.py @@ -12,6 +12,13 @@ """ def gyldig_bagasje(vekt): gyldig = True + if vekt > 32: + gyldig = False + elif vekt < 2: + gyldig = False + else: + gyldig = True + return gyldig class BaggageValidator(unittest.TestCase): diff --git a/lists/fixSnake.py b/lists/fixSnake.py index 76cc72b..46e46d2 100644 --- a/lists/fixSnake.py +++ b/lists/fixSnake.py @@ -9,8 +9,9 @@ """ def fixSnake(snake): - # TODO fiks slange - return snake + + fikset_slange = [snake[2], snake[1], snake[0]] + return fikset_slange class FixSnake(unittest.TestCase): def test(self): diff --git a/loops/countingList.py b/loops/countingList.py index 9338286..bde3c04 100644 --- a/loops/countingList.py +++ b/loops/countingList.py @@ -8,7 +8,11 @@ """ def telle_sauer(antall): - return [] + sauer = [] + for sau in range(1, antall + 1): + sauer.append(sau) + + return sauer class CountingList(unittest.TestCase): def test(self): diff --git a/loops/sumList.py b/loops/sumList.py index 453991f..66a0ecc 100644 --- a/loops/sumList.py +++ b/loops/sumList.py @@ -6,21 +6,23 @@ Hvis listen er tom skal svaret være 0. """ def positive_sum(liste): - return 0 + sum = 0 + for tall in liste: + if tall > 0: + sum = sum + tall + return sum class CountingList(unittest.TestCase): - def basic_test_cases(self): + def test_basic_test_cases(self): self.assertEqual(positive_sum([1,2,3,4,5]),15) self.assertEqual(positive_sum([1,-2,3,4,5]),13) self.assertEqual(positive_sum([-1,2,3,4,-5]),9) - def empty_case(self): + def test_empty_case(self): self.assertEqual(positive_sum([]),0) - def negative_case(self): + def test_negative_case(self): self.assertEqual(positive_sum([-1,-2,-3,-4,-5]),0) - - if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/variables/README.md b/variables/README.md index 6117fe0..de91386 100644 --- a/variables/README.md +++ b/variables/README.md @@ -9,7 +9,7 @@ For eksempel er noe en streng hvis vi skriver det med `"`: "hei" ``` (Vi kaller det en streng fordi det er en "streng" av bokstaver.) - +git@github.com:Anddor/python-basic.gitgit@github.com:Anddor/python-basic.git Hvis vi skriver et heltall rett frem er det et bare et heltall, kalt en `Integer` eller `int`: ```python 1 diff --git a/variables/baggage_calculator.py b/variables/baggage_calculator.py index e7f65bc..3f2052d 100644 --- a/variables/baggage_calculator.py +++ b/variables/baggage_calculator.py @@ -1,4 +1,5 @@ import unittest +import math """ @@ -11,15 +12,22 @@ Prisen er per begynte kilo rundet oppover. """ def bagasje_overvekt(vekt): + # SKRIV KODEN HER pris = 0 + + overvekt = math.ceil(vekt - 23) + if (overvekt < 0): + return 0 + pris = overvekt * 135 + return pris class BaggageCalc(unittest.TestCase): def test_underweight(self): - self.assertEquals(bagasje_overvekt(5.5), 0) + self.assertEqual(bagasje_overvekt(5.5), 0) def test_overweight(self): - self.assertEquals(bagasje_overvekt(30), 945) + self.assertEqual(bagasje_overvekt(30), 945) def test_rounded(self): self.assertEqual(bagasje_overvekt(23.5), 135) diff --git a/variables/cockroach.py b/variables/cockroach.py index a67f51a..bc994ed 100644 --- a/variables/cockroach.py +++ b/variables/cockroach.py @@ -1,4 +1,5 @@ import unittest +import math class CockroachTask(unittest.TestCase): """ @@ -13,7 +14,7 @@ class CockroachTask(unittest.TestCase): cm_i_sekundet = 0 def calculate(self, kilometer_i_timen): - self.cm_i_sekundet = 0 # TODO skriv koden her + self.cm_i_sekundet = math.floor(kilometer_i_timen * 27.77778) def test(self):