729g74 it och programmering, grundkurs729g74/kursmaterial/t2-f2-h17.pdf · 729g74 it och...

Post on 06-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

729G74 IT och programmering, grundkursTema 2, Föreläsning 2

Jody Foo, jody.foo@liu.se

Föreläsningsöversikt⁃ Kursinfo: återkoppling Muddy Cards och kompletteringar

⁃ Diskret matematik

⁃ Python: Programmering som informationsbearbetning

Ändra programbeteende baserat på information (villkor och jämförelser)

Bearbetning av sekventiell information (loopar och data i listor)

Återkoppling Muddy Cards (sammanfattning)⁃ Överlag lagom tidsåtgång (med variationer både upp och

ner mellan svar)

⁃ Givande/roligt/bra moment

⁃ Tröskel som nybörjare

⁃ Exempel till diskret matematik

⁃ Vägledning till resurser

⁃ "Jag lär mig", förståelse

⁃ Viss otydlighet/förvirrande upplägg

Programmering som informationsbearbetning

Repetition av datatyper i Python⁃ heltal (integer), int

exempel: 5

⁃ flyttal (floating point numbers), floatexempel: 5.0

⁃ text (string), strexempel: "hejsan"

⁃ lista (list), list exempel: [1, "1", []]

Repetition av funktioner i Python⁃ Definiera funktion med hjälp av nyckelordet def

⁃ En definierad funktion måste ha ett namn

⁃ En funktion kan ta emot noll eller fler namngivna argument

⁃ En funktion returnerar alltid ett värde, om inget returneras explicit, returneras värdet None

Exempel som block

Exempel som python-koddefconcatenate_strings(s1,s2):returns1+s2

Ändra programflöde baserat på information

Nya begrepp från exemplet⁃ Jämförelse: "Är är X lika med Y?"

⁃ Svar på jämförelse: ja/nej – sant/falskt

Nya begrepp från exemplet⁃ Villkor: om ... gör det här

⁃ Villkor: om ... gör det här, men om ... gör det där istället

⁃ Villkor: om ... gör det här, men om ... gör det där istället, om inget stämmer, gör något annat.

Jämförelser⁃ Lika med

⁃ Inte lika med

⁃ Större än

⁃ Mindre än

⁃ Större eller lika med

⁃ Mindre eller lika med

⁃ Svaret på en jämförelse är "ja" eller "nej".

⁃ Mer formellt säger vi att jämförelsen är sann eller falsk

Jämförelser i Python⁃ Lika med: ==

⁃ Inte lika med: !=

⁃ Större än: >

⁃ Mindre än: <

⁃ Större eller lika med: >=

⁃ Mindre eller lika med: <=

⁃ sant: True

⁃ falskt: False

Ny datatyp: sanningsvärdeboolskt värde, (eng. boolean)

Villkor i naturligt språk⁃ Om det är blött på marken, ta med dig ett paraply.

⁃ Om det är blött på marken, ta med dig ett paraply. Om det är soligt ute, ta inte med dig ett paraply.

⁃ Om Stor-affären har öppet, köp en mugg, om Lill-affären har öppet, köp en penna. Annars, köp en pärlplatta.

⁃ Vad finns det för problem med dessa uttalanden?

Köp 12 ägg från affären, om de har bananer, köp 3.Hur många ägg köpte Pikachu?

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P".

Om X gör P

Om Y gör Q

Om Z gör R

Här kan utfallet bli att inga, någon eller alla av P, Q, R utförs.

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1

Om X gör P

Om Y gör Q

Om Z gör R

if x:

p

if y:

q

if z:

r

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1 som pythonexempel

if6<3:print("Iamolderthanyou!")

if"hej"=="hej":print("Hello,hello")

ifTrue:print("TheTruthisoutthere")

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P, annars (dvs om inte X är sant), utför Q".

Om X gör P, annars, gör Q

Här kan utfallet bli att antingen P eller Q utförs.

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2

Om X gör P, annars, gör Q

if x:

p

else:

q

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2 som pythonexempel

if6<3:print("Iamolderthanyou!")else:print("Hello,hello")

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3:

X, Y är sanningsvärden och P, Q är instruktioner.

"Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q".

Om X gör P, annars, om Y gör Q

Här kommer antingen P eller Q, eller ingen av P eller Q att göras. Både P och Q kommer inte att göras.

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3

Om Y gör Q, annars, om Z gör R

if y:

q

elif z:

r

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3 som pythonexempel

if6<3:print("Iamolderthanyou!")elif"hej"=="hej":print("Hello,hello")

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q, men om varken X eller Y är sant, gör R istället".

Om X gör P, annars, om Y gör Q, annars gör R.

Här kommer exakt en av P, Q och R att utföras.

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4

Om X gör P, annars om Y, gör Q, annars, gör R

if x:

p

elif y:

q

else:

r

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4 som pythonexempel

if6<3:print("Iamolderthanyou!")elif"hej"!="hej":print("Hello,hello")else:print("I'llbehereforyou")

Ändra programflöde baserat på information

Ändrat programflöde baserat på informationdefrate_my_name(name):output=0ifname=='Aaa':output=10elifname=='Bbb':output=20else:output=5returnoutput

print(rate_my_name('Jody'))

Exempel på trinket.iohttps://trinket.io/blocks/dbec76430c

Bearbetning av en sekvens av värdenScenario: en robot ska titta på möjliga saker den skulle kunna göra.

Bearbetning av en sekvens av värden

Loop i Python⁃ Börja med nyckelordet while följt av ett sanningsvärde

⁃ Loopen fortsätter så länge som sanningsvärdet är sant

Loop-exempelwhileFalse:print("Kommeraldrigatthända.")

whileTrue:print("Kommeraldrigattsluta.")

counter=0whilecounter<5:print("Hurmångagångerskrivsjagut?")counter=counter+1

Bearbetning av en sekvens av värden

Ändrat programflöde baserat på informationtask_list=['uppgraderaminnesstorlek','kollanyaskalfärger','laddabatterierna','utforskanyarummet','kompånyttnamntillmigsjälv']

counter=1

whilecounter<=len(task_list):task=task_list[int(counter-1)]print(str('Undraromjagska')+str(task))counter=counter+1

Exempel på trinket.iohttps://trinket.io/blocks/4c4c740880

Bearbetning av en sekvens av värdenScenario: En robot som ska bestämma sig för vad den ska göra

Robot som ska bestämma sig för något att göra

Ändrat programflöde baserat på informationtask_list=[['uppgraderaminnesstorlek',4],['kollanyaskal-färger',1],['laddabatterierna',5],['utforskanyarummet',2],['kompånyttnamntillmigsjälv',3]]

defdecide_what_to_do(input_task_list):globalwhat_to_do,counter,todo_item,task_name,todo_prioritywhat_to_do=['rullatummarna',-1]counter=1

whilecounter<=len(input_task_list):todo_item=input_task_list[int(counter-1)]task_name=todo_item[0]todo_priority=todo_item[-1]

iftodo_priority>what_to_do[-1]:what_to_do=todo_itemcounter=counter+1

returnwhat_to_do

print(str('Jagskakommaihågatt')+str((decide_what_to_do(task_list))[0]))

Exempel på trinket.iohttps://trinket.io/blocks/7acb826d5c

Föreläsningssummering:Nya begrepp och termer⁃ Jämförelser: ==, !=, <, >, <=, >=

⁃ Sanningsvärden: True, False

⁃ Villkorssatser: if, if-else, if-elif, if-elif-else

⁃ Villkorlig loop: while

top related