Seminarie 3 - Experimentering
Kapitel som ska ha lästs
- Programmeringspraxis
- Hur man programmerar
- Dubbelrekursion
- Datatyper (särskilt om metoder för listor och strängar)
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
- 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
- I vilken ordning kommer element besökas i sekvensen [0, [7, [1, 27], 2], 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