Lær deg Python_18 - itnett/FTD02H-N GitHub Wiki

Bildene du har lastet opp viser en gjennomgang av hvordan vi kan bruke range()-funksjonen i Python for å forenkle oppgaver som krever flere repetisjoner, spesielt ved bruk av for-løkker.

La oss forklare hvert bilde og hvordan vi kan bruke dette til å optimalisere koden.


1. 🌟 Problemet uten en løkke

I det første bildet ser vi en kode der vi må legge til flere utgifter (expenses) manuelt ved å bruke flere append()-kall:

expenses = []
expenses.append(float(input("Enter an expense:\n")))
expenses.append(float(input("Enter an expense:\n")))
expenses.append(float(input("Enter an expense:\n")))
expenses.append(float(input("Enter an expense:\n")))
expenses.append(float(input("Enter an expense:\n")))
...

Problemet:

  • Gjentagelse: Denne metoden krever at vi manuelt skriver flere linjer med input() og append() for hver utgift vi vil legge til. Dette er ineffektivt og ikke skalerbart hvis vi har mange utgifter.

Spørsmålet på høyre side av bildet spør om det er mulig å bruke en løkke til å gjøre dette mer effektivt. Svaret er ja, og vi kan bruke range()-funksjonen til å hjelpe oss med dette.


2. 🔢 Løsningen med range()

Det andre bildet introduserer range()-funksjonen, som genererer en sekvens med tall som vi kan bruke i løkker. La oss se på tre eksempler som forklarer hvordan range() fungerer.

Eksempel 1:

>>> range(7)

Dette vil generere tallene fra 0 til 6:

(0, 1, 2, 3, 4, 5, 6)

Eksempel 2:

>>> range(0, 7, 1)

Dette eksemplet spesifiserer en startverdi (0), en stoppverdi (7), og en stegverdi (1). Det vil fortsatt generere samme sekvens:

(0, 1, 2, 3, 4, 5, 6)

Eksempel 3:

>>> range(2, 14, 2)

Dette starter på 2 og øker med 2 til det stopper før 14, noe som gir oss en sekvens med partall:

(2, 4, 6, 8, 10, 12)

3. 💡 Bruk av range() i koden vår

Nå som vi vet hvordan range() fungerer, kan vi bruke det til å forenkle koden vår for å legge til utgifter i en løkke. I stedet for å gjenta input()-kommandoen mange ganger, kan vi bruke en for-løkke:

Optimalisert kode:

expenses = []

for i in range(7):  # Vi vil be om 7 utgifter
    expense = float(input("Enter an expense:\n"))
    expenses.append(expense)

Hva skjer her?

  • range(7) genererer en sekvens med tall fra 0 til 6, noe som betyr at løkken vil kjøre 7 ganger.
  • For hver iterasjon av løkken, spør Python brukeren om å skrive inn en utgift ved hjelp av input().
  • Denne utgiften blir deretter konvertert til et flyttall med float() og lagt til i expenses-listen ved hjelp av append().

🎓 Sammendrag

  • Problemet: Å manuelt legge til flere utgifter ved å bruke mange linjer med kode er ineffektivt.
  • Løsningen: Ved å bruke en for-løkke og range()-funksjonen, kan vi forenkle dette ved å gjenta prosessen så mange ganger vi trenger uten å skrive flere linjer kode.
  • range() gir oss en enkel måte å generere sekvenser av tall som kan brukes til å kontrollere løkker i Python.

Ved å kombinere for-løkker med range(), kan vi skrive mer effektiv og fleksibel kode. 🚀

La meg vite om du har flere spørsmål! 😊

La oss gå gjennom koden og forklare hva som skjer, steg for steg. Denne koden brukes til å beregne totalen av flere utgifter som brukeren legger inn.

Koden:

total = 0
expenses = []

for i in range(7):
    expenses.append(float(input("Enter an expense:\n")))

total = sum(expenses)

print("You spent $", total, sep='')

Steg for Steg Forklaring:

  1. 🟢 Initialisering av total og expenses:

    total = 0
    expenses = []
    
    • total = 0: Variabelen total blir satt til 0. Den skal senere holde summen av alle utgiftene.
    • expenses = []: Her opprettes en tom liste kalt expenses. Etter hvert som brukeren legger inn utgifter, vil de bli lagret i denne listen.
  2. 🔄 For-løkke med range(7):

    for i in range(7):
        expenses.append(float(input("Enter an expense:\n")))
    
    • for i in range(7): Dette betyr at løkken vil kjøre 7 ganger. i vil anta verdiene 0 til 6 (men vi bruker ikke i direkte her, bare antall repetisjoner det gir oss).
    • input("Enter an expense:\n"): For hver runde i løkken, blir brukeren bedt om å skrive inn en utgift (f.eks. en kostnad).
    • float(): input()-funksjonen returnerer en streng, så vi bruker float() for å konvertere strengen til et desimaltall (flyttall).
    • expenses.append(): Hver nye utgift som brukeren skriver inn blir lagt til i listen expenses ved hjelp av append()-funksjonen.
  3. Beregning av totalen med sum():

    total = sum(expenses)
    
    • Etter at brukeren har skrevet inn alle 7 utgiftene, blir summen av alle utgiftene i listen expenses beregnet ved hjelp av sum()-funksjonen. Resultatet lagres i variabelen total.
  4. 🖨️ Skrive ut totalen:

    print("You spent $", total, sep='')
    
    • print(): Funksjonen skriver ut meldingen "You spent $" etterfulgt av verdien i total.
    • sep='': Dette fjerner standard mellomrom mellom argumentene i print-funksjonen, slik at utskriften blir "You spent $72" i stedet for "You spent $ 72".

📊 Eksempel på output:

Når du kjører programmet og legger inn utgifter, får du følgende interaksjon:

> python3 expenses.py
Enter an expense: 10
Enter an expense: 5
Enter an expense: 20
Enter an expense: 12
Enter an expense: 13
Enter an expense: 8
Enter an expense: 4
You spent $72
  • Brukeren blir bedt om å skrive inn 7 utgifter.
  • Etter at alle utgiftene er lagt inn, beregner programmet totalen og skriver ut meldingen "You spent $72".

🎓 Sammendrag:

  • For-løkken lar oss spørre brukeren om utgifter flere ganger uten å måtte skrive mange linjer med input().
  • sum()-funksjonen brukes til å enkelt beregne totalen av alle utgiftene.
  • Brukeren kan legge inn 7 utgifter som blir samlet i en liste, og deretter blir totalen skrevet ut.

Dette programmet er et enkelt og effektivt verktøy for å beregne totalen av utgifter. 🚀💸