Commit 1929bf62 authored by Børge Haugset's avatar Børge Haugset
Browse files

funksjoner

parent d601e6b1
# Det er forskjell på
# - Hva skal vi gjøre
# og
# - Hvordan i gjør det
# Man kan programmere vanskelig, eller smart.
# Man kan bruke ting flere ganger, til og med andres ting!
# Eksempel 1: Finne lengden av en streng
#man kan skrive dette:
streng = 'detteernåenutruuuuliglangstrengsomi' \
'allefallikkejeggidderåtelletegnenetilfordahadde' \
'jegsikkertholdtpåtilimorgen!'
antall = 0
for tegn in streng:
antall += 1
print(f'Strengen var {antall} tegn lang')
# Alternativet er å skrive
print(f'Strengen var {len(streng)} tegn lang')
# len(streng) er en funksjon - fordi den gjør noe for oss
# De fleste funksjoner bruker vi fordi de gir oss noe av verdi tilbake,
# som len(). Andre bruker vi fordi de gjør noe for oss, som print()
# Vi ser ikke hvordan koden til len() egentlig er, ikke bryr vi oss heller!
# print(), int(), float(), ord(), chr(), input()
# Alle disse har dere brukt, men de oppfører seg litt ulikt.
# alle returnerer noe, men hva returnerer print?
hva_returnerer_print = print('hva_returnerer_print')
print("hva_returnerer_print:",hva_returnerer_print)
print(f'Typen til hva_returnerer_print: {type(hva_returnerer_print)}')
# Hvordan skriver man en funksjon selv? La oss først tenke på en som
# gir et svar ut.
# valgfritt om en har parametre
def funksjonsnavn(innparameter1, innparameter2):
# beregning en må gjøre for å komme til svaret
svar = innparameter1 + innparameter2 # Bare et eksempel, altså
return svar # valgfritt om en returnerer noe spesifikt
# funksjonen kalles så med
beregning = funksjonsnavn(1,41)
print(beregning)
# Eksempel: Hvor mange vokaler er det i en streng
# Kan du lage en funksjon antall_vokaler som returnerer
# hvor mange vokaler det er i strengen?
# Hvorfor bruker vi funksjoner?
# - gruppere kode så en lettere ser hva som foregår
# - skriv kode en gang, gjenbruk det andre steder
# - flytter beregninger ut fra programmet som styrer flyt
# sjakkoppgave?
# foil 26 fra Terje.
# lag en løkke som ber brukeren skrive inn et gyldig sjakkfelt [a-h1-8]
# returner hvilken farge feltet har
# regel: for a, c, e, g: oddetall svarte, partal hvite, motsatt for resten
# han gjør noe veldig bra i koden sin i foilsettet, han flytter
# tallberegning ut av løkken. Det øker lesbarheten!
# Jeg tar bare med et alternativ her, som er litt mer kompakt,
# for å vise at dette kan gjøres på veldig mange måter.
def sjakk():
ordentlig = input('sjakkrute: ')
while not (len(ordentlig) == 2 and ordentlig[0] in 'abcdefgh' and
(0 < int(ordentlig[1]) < 9)):
ordentlig = input('skriv inn noe riktigere, du: ')
if ordentlig[0] in 'aceg':
if ordentlig[1] in '02468': return 'Hvit'
else: return 'Svart'
else:
if ordentlig[1] in '02468': return 'Svart'
else: return 'Hvit'
print(sjakk())
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment