Skip to content
Snippets Groups Projects
Commit d738e7e6 authored by Børge Haugset's avatar Børge Haugset
Browse files

forelesning

parent 46168d87
No related branches found
No related tags found
No related merge requests found
Showing
with 453 additions and 0 deletions
tall = 435.50551
x = -3
pre, post = str(tall).split('.')
if x < 0:
t2 = pre[x+1]+post
print(t2 > "5")
# print(post[x:])
# print(post[x:] > "5")
\ No newline at end of file
while True:
print('sant')
# Dette eksempelet er ikke noe en skal kunne lage selv.
# Tanken er heller: kan du forstå hva koden gjør for noe?
# Du skal registrere tiden noen bruker hver runde på å løpe
# så langt som de skriver inn rundt en 400 meters bane.
# Du skal be dem legge inn rundetid for hver runde
# For hver runde:
# Skrive ut samlet tid brukt
# Skrive ut hastighet (km/h) for den runden
banelengde = 400
hvorlangt = int(input('Hvor langt: '))
sammenlagttid = 0
status = 0
for runde in range (1, (hvorlangt // banelengde) + 2):
rundetid = int(input(f"tid på runde {runde}: "))
sammenlagttid += rundetid
status += banelengde
# TODO: siste runde er ikke alltid banelengdelengde!
# Hvordan påvirker det utregning av hastighet?
# Hvordan finner vi ut hvor langt det _egentlig_ ble løpt siste runde?
print(f"hastighet runde {runde}: {(banelengde/rundetid)*3.6:.2f} km/time.")
print(runde, rundetid, sammenlagttid, status)
\ No newline at end of file
# Lage overskrift
print('\t',end='') # Den tomme greia der tittelx krysser tittely tabbes bort
for y in range(1, 11):
print(f'y:{y}\t',end='')
print()
# LoopDeLoop - for alle xer går du igjennom alle yer
for x in range(1,11):
print(f'x:{x}\t',end='')
for y in range(1,11):
# legger inn en tab mellom hver, og ikke linjeskift
print(f'{x*y}\t',end='')
print('') # linjeskift etter hver hele x
\ No newline at end of file
# https://play.kahoot.it/#/k/3424402e-b469-4b48-98b7-270fbc572281
#coding=utf-8
# For - loopies
# Den enkleste - fra 0 til og uten et heltall
# Den litt mer avanserte: fra et tall til og uten et annet
# Enda mer avansert: Fra et tall, til og uten et annet tall, men hopp n hver gang!
# Avansertest: Kan man loope tegnene i en streng?
# Avansertestestere: Kan man... uhm...
# Hvis jeg vil loope gjennom mange ulike tall jeg vet på forhånd...
# Er det noe i senere pensum som kan hjelpe meg med det? Pliiiis!!!1! [te]
# Hint til neste år: iterable
# Avansertestest: kan vi... uhm... gå nedover? Telle baklengs? fra bakerste bokstav?
# Avansertestestere: Vi får se om vi har tid til en oppgave eller to om for-løkker.
# Som:
# spør om og lagre en streng
# spør hvor stort hopp du skal gjøre mellom hvert tegn
# for hvert hopp gjennom strengen skriver du ut om bokstaven er en vokal:
# bokstav in 'aeiouyæøå'
# Hva gjorde vi sist
# Oppsummeringssider - powerpoint - nå med to ekstra sider!
# Dagens tema: løkker og sløyfer
# while
# for
# Oppgave 1:
# Be brukeren om å skrive inn en streng som er enten 'krone' eller 'mynt'
# Hvis svaret er 'krone' skriver du ut 'krone'
# Hvis svaret er 'mynt' skriver du ut 'mynt'
# ellers skriver du ut 'feil svar'
# Oppgave 2: brukeren kan skrive 'k' eller 'm' også!
# hvordan skal du snike inn en or i de to testene?
# Dette er en utrolig vanlig feil: tall == 3 or 4
# Oppgave 3: gjør dette i en uendelig løkke
# tips: hvis du skal 'lempe' en de linjer ett hakk mot høyre,
# da kan du markere dem og trykke på <tab> (shift-tab mot venstre)
# Oppgave 4
# Lag to variable, krone og mynt, FØR while-løkken, begge 0.
# Hvorfor må disse variablene deklareres før løkken og ikke inni?
# Øk respektive variabel med 1 basert på om det blir krone eller mynt.
# Hver gang gjennom løkken skal du til slutt skrive ut
# hvor mange krone og mynt brukeren har skrevet inn til nå.
# Oppgave 5: Tell antall ganger du har kastet krone eller mynt
# Hvor må du deklarere denne variabelen for at den skal
# 'holde seg' hver gang gjennom løkken?
# Bonuspoeng hvis du skriver ut prosentandel krone hver runde
# Oppgave 6: Avslutt etter ti kast!
# while tester om noe er sant. Er det sant, da kjører den løkken
# Hvis ikke, da avslutter den løkken og går videre
# Hvordan kan du endre while-testen så den returnerer sant hvis og bare hvis
# variabelen kast er ti eller mindre?
# Oppgave 7: Rensk opp
# Fjern unødvendige utskrifter
# Endre slik at du skriver ut antall kron, mynt (og prosentandel mynt)
# etter at alle er skrevet inn
# Oppgave 8: hvorfor 10 kast?
# Spør brukeren hvor mange ganger det skal kastes
# hvordan kan en bruke dette rett i while-testen?
# Oppgave 9: hvorfor bestemme kast først?
# Det er mye bedre å spørre brukeren om hen skal kaste en
# gang til. Endre ting slik at du i stedet spør i slutten av
# løkka om man skal legge inn en gang til, og så sjekker while
# mot denne. Men da må du ha satt den til noe før du går inn i
# løkka også. Men denne er ment å være tricky, jeg viser løsningen
# i videoen. OG eksempel i jukselappen i samme folder som denne!
# Hva gjorde vi sist
# Oppsummeringssider - powerpoint - nå med to ekstra sider!
# Dagens tema: løkker og sløyfer
# while
# for
# Oppgave 1:
# Be brukeren om å skrive inn en streng som er enten 'krone' eller 'mynt'
# Hvis svaret er 'krone' skriver du ut 'krone'
# Hvis svaret er 'mynt' skriver du ut 'mynt'
# ellers skriver du ut 'feil svar'
'''
svar = input("krone eller mynt(m): ")
if svar == 'krone':
print('krone')
elif svar == 'mynt':
print('mynt')
else:
print('feil svar')
'''
# Oppgave 2: brukeren kan skrive 'k' eller 'm' også!
# hvordan skal du snike inn en or i de to testene?
# Dette er en utrolig vanlig feil: tall == 3 or 4
'''
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
print('krone')
elif svar == 'm' or svar == 'mynt':
print('mynt')
else:
print('feil svar')
'''
# Oppgave 3: gjør dette i en uendelig løkke
# tips: hvis du skal 'lempe' en de linjer ett hakk mot høyre,
# da kan du markere dem og trykke på <tab> (shift-tab mot venstre)
'''
while True:
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
print('krone')
elif svar == 'm' or svar == 'mynt':
print('mynt')
else:
print('feil svar')
'''
# Oppgave 4
# Lag to variable, krone og mynt, FØR while-løkken, begge 0.
# Hvorfor må disse variablene deklareres før løkken og ikke inni?
# Øk respektive variabel med 1 basert på om det blir krone eller mynt.
# Hver gang gjennom løkken skal du til slutt skrive ut
# hvor mange krone og mynt brukeren har skrevet inn til nå.
'''
krone, mynt = 0,0
while True:
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
print('krone')
krone += 1
elif svar == 'm' or svar == 'mynt':
print('mynt')
mynt += 1
else:
print('feil svar')
print(f'Krone: {krone}, mynt: {mynt}')
'''
# Oppgave 5: Tell antall ganger du har kastet
# Hvor må du deklarere denne variabelen for at den skal
# 'holde seg' hver gang gjennom løkken?
# Bonuspoeng hvis du skriver ut prosentandel krone hver runde
'''
krone = 0
mynt = 0
kast = 0
while True:
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
print('krone')
krone += 1
elif svar == 'm' or svar == 'mynt':
print('mynt')
mynt += 1
else:
print('feil svar')
kast += 1
print(f'Kast: {kast}, krone: {krone}, mynt: {mynt}')
print(f'Prosentandel krone: {(krone/kast)*100:>4.2f}') # Og litt fint formatert
# En student postet denne løsningen på forelesning
print(f'Prosentandel krone: {(krone/(krone+mynt)):.2%}')
# En mye vakrere løsning! Det kule med Python er at det er så mange veier til målet.
'''
# Oppgave 6: Avslutt etter ti kast!
# while tester om noe er sant. Er det sant, da kjører den løkken
# Hvis ikke, da avslutter den løkken og går videre
# Hvordan kan du endre while-testen så den returnerer sant hvis og bare hvis
# variabelen kast er ti eller mindre?
'''
krone = 0
mynt = 0
kast = 0
while kast < 10: # Vi starter med 0, så da blir ti kast 0 - 9
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
print('krone')
krone += 1
elif svar == 'm' or svar == 'mynt':
print('mynt')
mynt += 1
else:
print('feil svar')
kast += 1
print(f'Kast: {kast}, krone: {krone}, mynt: {mynt}')
print(f'Prosentandel krone: {(krone/kast)*100:>4.2f}') # Og litt fint formatert
'''
# Oppgave 7: Rensk opp
# Fjern unødvendige utskrifter
# Endre slik at du skriver ut antall kron, mynt (og prosentandel mynt)
# etter at alle er skrevet inn
'''
krone = 0
mynt = 0
kast = 0
while kast < 10: # Vi starter med 0, så da blir ti kast 0 - 9
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
krone += 1
elif svar == 'm' or svar == 'mynt':
mynt += 1
else:
print('feil svar')
kast += 1
print(f'Kast: {kast}, krone: {krone}, mynt: {mynt}')
print(f'Prosentandel krone: {(krone/kast)*100:>4.2f}') # Og litt fint formatert
'''
# Oppgave 8: hvorfor 10 kast?
# Spør brukeren hvor mange ganger det skal kastes
# hvordan kan en bruke dette rett i while-testen?
'''
krone = 0
mynt = 0
kast = int(input("Hvor mange kast?"))
while kast > 0: # Hvis vi teller nedover med 1 hver gang...
svar = input("krone(k) eller mynt(m): ")
if svar == 'k' or svar == 'krone':
krone += 1
elif svar == 'm' or svar == 'mynt':
mynt += 1
else:
print('feil svar')
kast -= 1
# Under: Ser du at jeg plutselig ikke kan bruke variabelen kast lenger?
# Hvorfor ikke? Hva gjør jeg med den over? Men det var en omvei!
print(f'Kast: {krone+mynt}, krone: {krone}, mynt: {mynt}')
print(f'Prosentandel krone: {(krone/(krone+mynt))*100:>4.2f}')
'''
# Oppgave 9: hvorfor bestemme kast først?
# Det er mye bedre å spørre brukeren om hen skal kaste en
# gang til.
krone = 0
mynt = 0
igjen = True
svar = input("krone(k) eller mynt(m) (q avslutter): ")
while svar != 'q':
if svar == 'k' or svar == 'krone':
krone += 1
elif svar == 'm' or svar == 'mynt':
mynt += 1
else:
print('feil svar')
svar = input("krone(k) eller mynt(m) (q avslutter): ")
# Under: her feiler utregningen hvis en aldri kaster. Legger derfor til
# en liten sjekk for å se om det faktisk ble kastet noe.
if krone + mynt > 0:
print(f'Kast: {krone+mynt}, krone: {krone}, mynt: {mynt}')
print(f'Prosentandel krone: {(krone/(krone+mynt))*100:>4.2f}')
#coding=utf-8
# En litt mer grafisk beskrivelse av hvordan en kjører løkker
for i in range(0,20,2):
print("x"*i)
lengde = 0
antall = 0
total = 0
while True:
lengde = int(input("Hvor lang er barten? (0 avslutter): "))
if lengde == 0:
print("Snittlengde av",antall,"barter: ",total/antall)
break
if lengde < 0:
print("Legg inn positive bartelengder, du...")
continue
total += lengde
antall += 1
print("Ferdig med bartemåling!")
\ No newline at end of file
alder = int(input("Hvor gammel er du? "))
while (alder<0 or alder>120):
print("Feil: Alder må være mellom 0 og 120!")
alder = int(input("Hvor gammel er du? "))
print("Takk for den din "+str(alder)+"åring!!!")
# Merk bruken av + i print, den må ha str(tall)
# alternativt
print(f"Takk for den din {alder}åring!!!")
import random
tall = random.randint(0,100)
ganger = 0 # Teller hvor mange ganger man gjetter
while True:
gjett = int(input("Gjett et tall mellom 0 og 100: "))
if not (0 < gjett < 100):
print("Tallet må være mellom 0 og 100")
continue
ganger += 1
if tall == gjett:
print("Riktig! Forsøk: ",ganger)
break
elif gjett < tall:
print("Høyere")
elif gjett > tall:
print("Lavere")
\ No newline at end of file
import random # Henter inn random-biblioteket
tall = random.randint(1,100) # tall mellom 1 og 100
gjett = -1
while (tall!=gjett): #så lenge man gjetter feil
gjett = int(input("Gjett tall mellom 1 og 100: "))
if (gjett>tall):
print("Psst: Litt for stort!")
elif (gjett<tall):
print("Psst: Litt for smått!")
print("RIKTIG!!!! Hvordan klarte du det????")
i = 0
while True:
i += 1
if i % 10000000 == 0:
print(i)
\ No newline at end of file
sum = 0
# Synes du det ser ut som det er unødvendig mange parenteser her? Fjerne den ytterste og se hva som skjer.
# Men hva skjer da!? Hvorfor kræsjer det ikke, når en forsøke å bruke pluss med True? hva blir 1 + True?
while tall := int(input("Skriv inn neste tall, 0 avslutter: ")) != 0:
print(tall)
sum = sum + tall
print(sum)
\ No newline at end of file
for x in range(3,31,3):
print(x,"\t",x**2)
summen = 0
tall = -1 # Setter variabelen tall til ikke å være lik 0
print("Programmet summerer tallene du skriver inn")
print("Avslutt summeringen ved å skrive 0")
while tall!=0: # Saa lenge tall er ikke lik 0
tall = int(input("Skriv inn et tall, avslutt med 0: "))
summen = summen + tall
print("Summen av tallene blir",summen)
for t in range(24):
print('ding ding')
for m in range(60):
for s in range(60):
print(f'{t}:\t{m}:\t{s}')
# Dette benytter seg av 'walrus operator'. Noen liker det, andre ikke. Det kan lett bli uoversiktlig,
# samtidig slipper man å kickstarte en whileløkke før man hopper inn i den.
while alder := int(input("tall: ")) < 100:
print("For lavt")
\ No newline at end of file
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment