Göm menyn

Seminarie 3 - Experimentering

Kapitel som ska ha lästs

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

Uppgifter

1. Uppgift: Läsbar kod och kommentering

Instruktioner: Läsbar kod och kommentering

Ni ska skriva kod i par som på ett så tydligt sätt som möjligt itererar över alla kort i en kortlek. Korten är numrerade från 0 till 51. Använd kommentarer där detta verkar lämpligt.

2. Uppgift: Programmeringspraxis

Gör följande kod lättläst och lättförståelig!

def a(b):
    c = b[0]
    for i in range(len(b)):
        c = b[i] if b[i] - c < 0 else c
    return c

def a(b):
    if b < 2: return False
    else:
        for d in range(2, int(b**(1/2))):
            if not b % d: return False
        return True

3. Uppgift: Metoder

Instruktioner: Metoder

Skriv funktioner som med hjälp av pythons sträng-metoder manipulerar indata på valfritt sätt.

Exempel

"Hello noob" => "h3ll0 n00b"
"Super sale" => "!!!SUPER SALE!!!"
"from_snake_case_to_camel_case" => "fromSnakeCaseToCamelCase"
"/dir/on/linux/to/windows/" => "C:\dir\on\linux\to\windows"
"Hola" => "¿Hola?"
"Jag är vilse" => "Jojagog äror vovilolsose"
"Best idea ever" => "Best. Idea. Ever"
" too\n much\n whitespace\n       " => "too much whitespace"

4. Uppgift: Dubbelrekursion

  1. Skriv en funktion som går igenom en lista och dess underlistor och returnerar elementet med det största värdet. tips: gör en fallanalys
  2. I vilken ordning kommer element besökas i sekvensen [0, [7, [1, 27], 2], 3]?
  3. Vilken ändring behöver göras för att ändra ordningen elementen besöks?

5. Uppgift: Dictionary

Skriv en funktion flatten_dic som givet en dictionary av dictionaries returnerar en ny dictionary där endast par på lägsta nivån finns med.

Tips: använd metoden update för att kombinera två dictionaries

Exempel

>>> data = {
        "a": {
            "a": {
                "a": {
                    "yolo": 1,
                    "swag": 2
                },
                "b": {}
            },
            "b": {
                "1337": 3
            },
            "c": {
                "42": 4
            }
        }
    }
>>> flatten(data)
{'yolo': 1, 'swag': 2, '1337': 3, '42': 4}

Sidansvarig: Peter Dalenius
Senast uppdaterad: 2021-12-03