Skolan för Daaveenskap och kommunikaion DD1310/DD1314/DA3009 PROGRAMMERINGSTEKNIK F Ö R E L ÄS N I N G 3 Kap 3-4 i Dawson Operaorer i villkor Ieraion: while for Slumpal random VILLKOR E villkor har värde eller False. Daaypen kallas boolean. En boolesk variabel kan säas direk ill e villkorsvärde. Exempel: spara = jämföra=compare villkor=condiion OPERATORER I VILLKOR Operaor Beyder Om vi sa dag=20 blir == lika med dag==20!= skil från dag!=20 False > sörre än dag>5 < mindre än dag<5 False >= sörre än eller lika med dag>=5 <= mindre än dag<=20 eller lika med TALGISSNING 1.0 # Talgissning, version 1.1 al = 17 if gissning!= al: prin("de var fel") else: prin("rä!") TALGISSNING 2.0 # Talgissning, version 2.0 al = 17 if gissning!= al: prin("de var fel") else: prin("rä!") 1
JÄMFÖRA STRÄNGAR Srängar kan jämföras med avseende på likhe: if namn == "Linda": prin("ine du nu igen...") Och även med alfabeisk ordning: if "elefan" < "elmäare": prin("elefan kommer före\ elmäare i ordlisan") KOMBINERA VILLKOR Villkor kan kombineras med operaorerna and, or, no and and False or or False no no False False False VILKET VILLKOR BLIR FALSE? Give ålder=21, namn= Mireille ; vilke av följande villkor blir False? ålder == 21 and namn == Mireille ålder < 22 or namn == Algo ålder == 5 or namn > Mireille ålder >= 21 and namn > Algo ITERATION Ieraion beyder upprepning. I Pyhon: while for WHILE-SLINGAN WHILE - SYNTAX En while-slinga upprepar e anal saser så länge som e villkor är uppfyll. Så länge som kannan ine rinner över: Fyll på mer vaen! Så länge som du ine har somna: Räkna e får ill! Så länge som du ine gissa rä al: Gissa en gång ill! while villkor: sas1 sas2.. 2
ALGORITM FÖR TALGISSNING En algorim är en segvis beskrivning av vad programme ska göra. Exempel: 1. Slumpa e al. 2. Lå användaren göra en gissning 3. Så länge som gissningen är fel: Om gissningen är för hög : uppmana användaren a ge e lägre al och läs in ny gissning. Om gissningen är för låg : uppmana användaren a ge e högre al och läs in en ny gissning. 4. När gissningen är rä skriv u beröm. TALGISSNING 3.1 # Talgissning, version 3.1 impor random al = random.randin(1,100) n = 1 while gissning!= al: n += 1 prin("bravo, du gissade rä!") prin("...på bara", n, "försök!") # Talgissning med funkion impor random def gissaal(al = 17): n = 1 while gissning!= al: n += 1 reurn n OÄNDLIG SLINGA Om villkore aldrig uppfylls får man en slinga som upprepas i all oändlighe. Kan yra sig som a programme "hänger sig" - inge händer Eller a massor av ex rusar förbi på skärmen (om man har uskrif i slingan). Avbry programme genom a rycka Crl-C (Crl och C samidig). n = gissaal() prin("bravo, du gissade rä!") prin("...på bara", n, "försök!") TALFÖLJDER Funkionen range() ger en följd av helal. range(10) ger 0,1,2,3,4,5,6,7,8,9 Man kan också ange både sar och slu: range(8,15) ger 8,9,10,11,12,13,14 Och även seg: range(44,55,3) ger 44,47,50,53 Funkionen range ger en ieraor. UPPGIFT: UDDA TAL Vi vill ha alla udda al mellan 0 och 10. Hur ska vi anropa range? range(0,9,1) range(0,10,2) range(1,9,2) range(1,10,2) 3
Funkion RANDOM-FUNKTIONER random.randin(1,6) random.randrange(1,6,2) random.random() namn="ki","nour","robin" random.choice(namn) Resula Slumpar e helal: 1,2,3,4,5 eller 6 Slumpar e udda helal: 1,3 eller 5 Slumpar e decimalal mellan 0.0 och 0.999 Slumpar e av namnen FOR-SLINGAN En for-slinga upprepar e anal saser för varje elemen i en följd. Exempel: För varje al i en följd (range): Beräkna kvadraen! För varje boksav i en sräng: Skriv u boksaven! För varje elefonnummer på lisan: Ring upp personen! följd=sequence UPPGIFT: VAD BLIR SUMMAN? VAD BLIR DITT NAMN BAKLÄNGES? summa = 0 for i in range(5): summa += i prin(summa) 15 10 5 Algorim 1. Skapa en om sräng 2. Gå igenom varje boksav i namne... 3....och lägg ill i början på nya srängen 0 KONTROLLERA ALGORITMEN FUNKTION boks u n s r ö m bakfram u+ n+u s+nu +snu r+snu ö+rsnu m+örsnu def bakfram(namn): """Reurnerar namne baklänges""" bakfram = "" for boks in namn: bakfram = boks + bakfram reurn bakfram 4
LÄXA TILL TORSDAG: LÄS KAP 5 I DAWSON L I S T, D I C T I O N AR Y 5