# Verdier vi jobber med: har_jobb = True har_medlåntaker = True eier_bolig = True har_gått_konk = False er_statsborger = False har_oppholdstillatelse = True kredittscore = 70 m_inntekt = 50000.0 m_gjeld = 5000.0 lånemengde = 2000000 # Man kan løse denne oppgaven på mange forskjellige måter! # Nedenfor vil dere se løsninger som bruker lange beslutninger, nøstede beslutninger, og bruk av boolske variabler. Hvilken liker du best? ;) # Legg merke til at selve uttrykkene er like, men strukturen annerledes! Det kan være en fin øvelse å "leke python-tolk" og følge koden linje for linje. Før den gjerne inn i Pythontutor. # Én løsning er å lage en ekstremt lang betingelse: if ((er_statsborger or har_oppholdstillatelse) and (not har_gått_konk or har_medlåntaker) and ((kredittscore > 70 and m_gjeld / m_inntekt < 0.4) or (30 < kredittscore <= 70 and har_jobb and eier_bolig and har_medlåntaker and m_inntekt > lånemengde / 12))): print("Én lang betingelse: Du kan få lån!") else: print("Én lang betingelse: Du kan ikke få lån!") # Dette var ganske vanskelig å lese, sant? Derfor kan det være lurt å nøste spørringer slik: if er_statsborger or har_oppholdstillatelse: if not har_gått_konk or har_medlåntaker: if kredittscore > 70: if m_gjeld / m_inntekt < 0.4: print("Nøstede betingelser: Du kan få lån!") elif 30 < kredittscore <= 70: if har_jobb and eier_bolig and har_medlåntaker: if m_inntekt > lånemengde / 12: print("Nøstede betingelser: Du kan få lån!") else: print("Nøstede betingelser: Du kan ikke få lån!") else: print("Nøstede betingelser: Du kan ikke få lån!") else: print("Nøstede betingelser: Du kan ikke få lån!") else: print("Nøstede betingelser: Du kan ikke få lån!") else: print("Nøstede betingelser: Du kan ikke få lån!") # Dette var kanskje noe lettere å lese, men legg merke til hvor mye kopiert kode vi får! Det kan også være vanskelig å holde styr på hvilket "innrykk" vi ligger på. # Derfor kan dette være en god mulighet til å bruke boolske variabler! krav_1_oppfylt = er_statsborger or har_oppholdstillatelse krav_2_oppfylt = not har_gått_konk or har_medlåntaker lånesøknad_innvilget = False # Vi setter variabelen til "False" først. Om betingelsene nedenfor skrives over, vil variabelen skrives over til "True" if krav_1_oppfylt and krav_2_oppfylt: if kredittscore > 70: lånesøknad_innvilget = m_gjeld / m_inntekt < 0.4 elif 30 < kredittscore <= 70: if har_jobb and eier_bolig and har_medlåntaker: lånesøknad_innvilget = m_inntekt > lånemengde / 12 if lånesøknad_innvilget: print("Bruk av variabler: Du kan få lån!") else: print("Bruk av variabler: Du kan ikke få lån!")