Lær deg Python_20 - itnett/FTD02H-N GitHub Wiki
Vi skal nå lære deg alt du trenger for å lage og forstå denne koden fra bunnen av, selv om du aldri har jobbet med matte eller Python før! 🎉 Dette er et program som hjelper deg med å regne ut hvor mye penger du skylder etter hvert som du betaler tilbake et lån, måned for måned. La oss komme i gang!
Python og Lånekalkulator – Forklaring for Nybegynnere 👶💻
Hva skal vi lage? 🤔
Vi skal lage et program som hjelper deg med å holde styr på et lån. Programmet spør deg om:
- Hvor mye penger du skylder.
- Hvor stor prosentandel (rente) du må betale hvert år (APR = Annual Percentage Rate).
- Hvor mye du betaler hver måned.
- Hvor mange måneder du vil se resultatene for.
Programmet beregner så hvor mye du fortsatt skylder etter å ha betalt i løpet av disse månedene.
Grunnleggende: Hva er tall og variabler i Python? 🔢📝
Før vi går i gang med koden, la oss lære litt om tall og variabler.
- Tall i Python er akkurat som tall du kjenner fra hverdagen. Vi kan bruke dem til å telle, regne og sammenligne.
- En variabel er en måte å lagre informasjon på, akkurat som å skrive noe ned på en lapp. Tenk på en variabel som en boks hvor du kan lagre et tall eller en verdi.
Eksempel:
money_owed = 50000
Her lagrer vi verdien 50 000 i variabelen money_owed
som betyr "penger jeg skylder".
Input: Hvordan få informasjon fra brukeren? 🖊️
For å gjøre programmet interaktivt, kan vi spørre brukeren om å gi oss informasjon ved hjelp av input()
-funksjonen.
Eksempel:
money_owed = float(input("Hvor mye penger skylder du?\n"))
input()
: Dette lar oss stille spørsmål og få inn tekst fra brukeren.float()
: Denne funksjonen gjør om teksten til et tall (spesielt desimaltall).
Her spør vi brukeren hvor mye de skylder, og lagrer det som et desimaltall i money_owed
.
APR: Hva er rente? 📈
Når du låner penger, betaler du en prosentandel ekstra i rente. Dette er APR (Annual Percentage Rate), og i vårt program spør vi om denne verdien.
Eksempel:
apr = float(input("Hva er renten på lånet (i prosent)?\n"))
Her ber vi brukeren skrive inn en prosentverdi, for eksempel 3 %.
Lønningskalkulatoren: Hvor mye betaler du hver måned? 💵
Nå vil vi vite hvor mye brukeren skal betale tilbake hver måned.
Eksempel:
payment = float(input("Hvor mye betaler du hver måned?\n"))
Tid: Hvor lenge skal vi se resultatene for? ⏳
Her ber vi brukeren velge hvor mange måneder de vil se resultatene for.
Eksempel:
months = int(input("Hvor mange måneder vil du se resultatene for?\n"))
int()
: Dette gjør om svaret til et heltall (uten desimaler).
Beregning av månedlig rente 🔄
For å regne ut hvor mye renter som legges til hver måned, må vi dele den årlige renten på 12 (måneder i året).
Eksempel:
monthly_rate = apr / 100 / 12
Her deler vi først renten på 100 (for å gjøre prosent til desimal), deretter på 12 for å få den månedlige renten.
Hva er renter? 💡
Når du har et lån, betaler du renter på pengene du skylder. Hver måned legges det til litt ekstra penger på grunn av renten.
Eksempel:
interest_paid = money_owed * monthly_rate
Her regner vi ut hvor mye renter du må betale denne måneden.
Legg til renter til total gjeld ➕
For å regne ut hvor mye penger du skylder etter renten er lagt til, må vi legge rentebeløpet til lånet.
Eksempel:
money_owed = money_owed + interest_paid
Dette legger renten til beløpet du skylder.
Betale tilbake gjeld 🏦
Etter at renten er lagt til, vil vi trekke fra pengene du betaler tilbake hver måned.
Eksempel:
money_owed = money_owed - payment
Dette betyr at vi trekker fra det du betaler fra den totale summen du skylder.
Koden i sin helhet:
Her er hele koden satt sammen!
# Få detaljer om lånet
money_owed = float(input("Hvor mye penger skylder du?\n")) # Eksempel: 50 000
apr = float(input("Hva er renten på lånet?\n")) # Eksempel: 3 %
payment = float(input("Hvor mye betaler du hver måned?\n")) # Eksempel: 1 000
months = int(input("Hvor mange måneder vil du se resultatene for?\n")) # Eksempel: 24
# Beregn månedlig rente
monthly_rate = apr / 100 / 12
# Kalkuler renter
interest_paid = money_owed * monthly_rate
# Legg til renter i totalen
money_owed = money_owed + interest_paid
# Gjør betaling
money_owed = money_owed - payment
Hvordan koden virker, forklart steg for steg:
-
Spør om lånedetaljer: Programmet spør deg om hvor mye penger du skylder, renten, hvor mye du betaler hver måned og hvor mange måneder du vil se resultatene for.
-
Regn ut månedlig rente: Programmet regner ut den månedlige renten basert på årlig prosent.
-
Legger til renter: Hver måned legges det til renter på beløpet du skylder.
-
Betaler ned: Etter at renten er lagt til, trekker vi fra det beløpet du betaler hver måned.
Nå har du lært: 🎓
- Hvordan ta imot input fra brukeren med
input()
og gjøre det om til tall medfloat()
ogint()
. - Hva APR (rente) er, og hvordan vi beregner månedlig rente.
- Hvordan legge til renter og trekke fra betalinger hver måned.
Gratulerer med at du har laget din egen lånekalkulator! 🎉👨💻👩💻
For å forbedre skriptet og utforske ulike variasjoner av det, la oss gå gjennom noen forbedringer og forklare potensielle bruksområder for lignende skript. Vi kan gjøre skriptet mer lesbart, effektivt, og kanskje legge til flere funksjoner som brukeren kan dra nytte av.
1. Forbedret avrunding av tall
For øyeblikket viser terminalutskriften mange desimaler, noe som kan gjøre det vanskelig å lese. La oss forbedre dette ved å begrense antall desimaler til for eksempel to. Dette gjør det lettere for brukeren å forstå beløpet de fortsatt skylder.
Vi kan bruke round()
-funksjonen for å gjøre dette:
# Calculate interest to pay
interest_paid = round(money_owed * monthly_rate, 2)
# Add in interest
money_owed = round(money_owed + interest_paid, 2)
# Make payment
money_owed = round(money_owed - payment, 2)
# Print result
print(f'Paid {payment}, of which {interest_paid} was interest. Now I owe {money_owed}')
2. Legg til brukervennlig tekst
Vi kan forbedre utskriften for å gi brukeren en bedre forståelse av hva som skjer. I stedet for bare å skrive "Now I owe", kan vi legge til mer brukervennlig tekst som inkluderer flere detaljer.
print(f'You paid ${payment}, of which ${interest_paid} was interest. Now you owe ${money_owed} remaining on the loan.')
3. Implementering av loop
For å vise tilbakebetalinger over flere måneder, kan vi bruke en løkke som beregner renter og betalinger for hvert enkelt måned, i stedet for å bare beregne for en enkelt måned. Dette er allerede vist i koden din, men la oss forbedre den ved å legge til et stopp når lånet er betalt tilbake.
for i in range(months):
if money_owed <= 0:
print("Congratulations! The loan is fully paid off.")
break
# Calculate interest to pay
interest_paid = round(money_owed * monthly_rate, 2)
# Add in interest
money_owed = round(money_owed + interest_paid, 2)
# Make payment
money_owed = round(money_owed - payment, 2)
if money_owed < 0:
money_owed = 0 # Loan fully paid off
# Print result for the current month
print(f'Month {i + 1}: Paid ${payment}, of which ${interest_paid} was interest. Now you owe ${money_owed}.')
4. Legg til ekstra funksjoner
Du kan forbedre dette skriptet ytterligere ved å legge til funksjoner som for eksempel:
- Overbetaling: Hvis brukeren ønsker å betale mer enn det faste månedlige beløpet for å bli kvitt lånet raskere.
- Visualisering av tilbakebetaling: Du kan bruke biblioteker som
matplotlib
for å lage grafer som viser hvordan gjelden synker måned etter måned.
5. Bruksområder for lignende skript
Med den kunnskapen du har fått fra dette skriptet, kan du lage mange andre relevante skript innen økonomi og budsjettering, som for eksempel:
- Sparekalkulator: Beregn hvor mye penger du vil ha spart etter en gitt tid med månedlige innskudd og renter.
- Boliglånskalkulator: Lignende til skriptet ovenfor, men designet for boliglån med ekstra hensyn til nedbetalingsplaner.
- Budsjetteringsverktøy: Automatiser sporing av utgifter og inntekter for å gi brukeren oversikt over økonomien sin over tid.
Oppsummering
Med dette grunnlaget kan du lage kraftige verktøy for personlig økonomi som hjelper brukere med å spore gjeld, spare penger, og forstå renter og tilbakebetaling. Denne kunnskapen er svært overførbar til andre områder innen dataanalyse, budsjettering, og mye mer.