Test-deg-selv uke 42 og 43

Informasjon om test-deg-selv

Dette er oppgaver som er ment som mengdetrening i programmering. Det legges ut løsningsforslag etter at vi har gått gjennom og løst oppgavene i webinaret. Se Blackboard for mer informasjon om tidspunkt for dette.

Oppgavene er strukturert på samme måte som i øvingene: Det er tre kategorier: 1(grunnleggende), 2(forventet), 3(avansert). Kategori 1 og 3 har én oppgave hver, imens kategori 2 har fire oppgaver. Oppgavene i kategori 2 er det forventet at man klarer å løse.

Står du fast? Prøv å google problemet, eller spør om tips eller hjelp på Slack :)

Disse ukene er det kontrollstrukturer som er tema:

  • For-løkker
  • While-løkker
  • Nøstede løkker
  • Pass, break og continue

1.1

Sett en variabel, "tall", til å være null. Lag en while-løkke som øker dette tallet med 1 for hver gang løkken kjøres skriv ut alle tall til og med 10.

In [3]:
# Skriv kode her

tall = 0

while tall < 10:
    tall+=1
    print(tall)

2.1

Lag en for-løkke som går gjennom ordet «programmering», print ut hver bokstav. Når løkken kommer tilbokstaven «e» skal den stoppes og e skal ikke printes.

In [5]:
# Skriv kode her

word = 'programmering'

for i in word:
    if i != 'e':
        print(i)
    else:
        break

2.2

a)

Du har følgende liste med navn:

navn = ["Kari", "Arne", "Hanne", "Julie", "Maria", "Christine"]

Iterer gjennom listen og finn og returner kun "Maria". For hvert navn som ikke er maria print "ikke Maria"

In [9]:
navn = ["Kari", "Arne", "Hanne", "Julie", "Maria", "Christine"]

for i in navn:
    if i != 'Maria':
        print('Ikke Maria')
    else:
        print('Maria!')

b)

Iterer over ordet "fiskeboller" og print alle bokstavene utenom b.

In [11]:
# Skriv kode her

word = 'fiskeboller'

for i in word:
    if i == 'b':
        pass
    else:
        print(i)

2.3

a)

Bruk en løkke til å printe ut alle tallene fra 1-6

b)

Bruk en for løkke til å print ut tall fra mellom 15 og 0 i synkende rekkefølge som er delbare med 3

c)

Sett n=15 og bruk en while løkke til å telle baklengs fra 15 ned til 0.

In [15]:
# Skriv kode her
#a)
tall = 1

while tall < 7:
    print(tall)
    tall+=1
In [3]:
#b)
tall = 15

while tall > 0:
    if tall % 3 == 0:
        print(tall)
    else:
        print('Nei')
    tall-=1
 
    
In [4]:
#c)
n = 15

while n > 0:
    print(n)
    n-=1

2.4

Lag en for løkke som summerer alle tallene fra 1-100 og printer det ut.

In [23]:
# Skriv kode her
summen = 0
for i in range(1,101):
    summen += i
print(summen)

3.1

I denne oppgaven skal du bruke turtle-biblioteket til å lage et program (må kjøres i PyCharm).

Programmet skal bruke en while-løkke til å kontrollere om det skal tegnes en runde i en spiral. Start med å spørre brukeren om han/hun vil tegne en spiral. Hvis svaret er nei, skriv en avsluttende tekst. Hvis svaret er ja, tegn en sirkel. Spør igjen om brukeren vil legge til en ny runde i spiralen, og tegn en ny sirkel for hver gang brukeren svarer ja. Den nye sirkelen må plasseres litt vekk fra den gamle, bruk for eksempel turtle.forward(10) for å flytte markøren fremover 10 pixler. Gjenta dette til brukeren svarer nei, og skriv en avsluttende tekst når svaret er nei.

In [ ]:
import turtle

t = turtle.Turtle()

svar = input('Vil du tegne en spiral? ')

while svar == 'J':
    t.circle(40)
    t.forward(10)
    svar = input('Trykk "J" for å legge til en ny runde i spiralen. ')

if svar == 'N':
    print('Da er spiralen ferdig!')