NemProgrammering.dk logo

Funktioner i Python

Lær Python programmering » Funktioner i Python # 7
Inkluderet:
Livstidsadgang
27 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Simon Rotendahl   Video: 17:37   Lektion nr. 7 af 27

Jeg skriver det samme igen og igen!

Funktioner er et vigtigt koncept i programmering. I videoen her ser i hvordan man definere funktioner. En funktion er et slags variable, for et stykke kode. Ligesom et variable kan gemme et tal, en streng osv. Så kan en funktion gemme et stykke kode, altså flere linjer. En funktion kan også give forskellige svar alt efter dens input. F.eks funktionen print. Den har vi kigget på, den tager en streng som input/argument/parameter (kært barn har mange navne) funktionen printer så denne streng.

Vi skal lære om funktioner, så vi kan anvende andres funktioner, og så vi kan gøre vores egen kode, både nemmere at læse, og hurtigere at skrive, så vi ikke skal skrive samme kode flere gange.

I næste video kigger på en datatype der hedder lister!

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Henrik H. siger:

    Jeg ville forsøge mig med at lave et ligge program hvor man kunne indtaste tallet i stil med lektion 6.

    Min kode ser sådan ud.

    print(“Dette er et program der tester om dit tal er lige eller ulige”)

    ditValg = input(“Skriv dit heltal\n”)

    if ditValg % 2 == 0:
    print(ditValg + “er et lige tal”)

    else:
    print(ditValg + “er et ulige tal”)

    Men det virker ikke og jeg kan ikke se hvorfor.

    1. Simon R. siger:

      Hej Henrik,

      Rigtig godt spørgsmål! Problemet kommer pga. datatyper. Så når du skriver ditValg = input(“Skriv dit heltal\n”), så får du tallet som en streng. Altså hvis jeg f.eks taster 6 når programmet kører, så bliver ditValg = “6” og IKKE ditValg = 6. Problemet er så at du siger “ditValg % 2”, og fordi ditValg er en streng så ser python det ligesom hvis du f.eks havde skrevet “hund” % 2.

      Dette problem er heldigvis nemt at løse. Man løser det igennem det der hedder “type casting”, hvor du kan tænke på casting ligesom i film verdenen hvor man “caster” en skuespiller til en rolle. Så nu har vi vores streng “6”, som vi godt vil have castet til et heltal, og husk at et heltal er integer på engelsk. Så for at lave “6” om til 6, så skriver vi
      int(“6”)
      hvor int så er en forkortelse for integer. Man kan faktisk også gøre det omvendte, så hvis du har et heltal du vil lave til en streng, så skriver du str(6), som så bliver til “6”.

      Så for at løse dit problem så er alt hvad du skal gøre bare at ændre din if til
      if int(ditValg) % 2 == 0:

      Håber den forklaring gav mening, ellers må du endelig sige til, og fedt at du prøve at strikke de forskellige øvelser sammen, det hjælper rigtig meget med forståelsen :)

      Mvh.
      Simon

      1. Henrik H. siger:

        Tak for hjælpen. Det er dejligt at der kommer så hurtigt svar.

        1. Simon R. siger:

          Det var så lidt, og godt at høre at det hjalp :)

  • Thomas Højland G. siger:

    Hej.
    Jeg får en fejl når jeg kører “programmet” vedr. numpy.

    Fejlen er – AttributeError: module ‘numpy’ has no attribute ‘sum’

    Koden:
    import numpy as np

    def summa(*tal):
    z = np.sum(tal)
    print(z)

    summa(4,3,2)

    1. Simon R. siger:

      Hej Thomas,

      Virkede den før du satte stjernen ind, og gav den (4,3,2) i stedet for (4)?

      1. Simon R. siger:

        Du vil også opdage at videoen har ændret sig, og det er simpelthen fordi at det var en gammel version der lå der ved et uheld. Det med pakker er blevet rykket til en video for sig selv senere i kurset. Det blev simpelthen for presset i den video der var før.

      2. Thomas Højland G. siger:

        Hej Simon. Tak for hurtigt svar.
        Nej det virker heller ikke uden stjerne.
        Her er kode og fejl uden stjerne:
        import numpy as np

        def summa(tal):
        z = np.sum(tal)
        print(z)

        summa(4)

        Fejl:

        S C:\Users\Thomas\OneDrive\Programmering\Programmer\Læring 1> python numpy.py

        Traceback (most recent call last):
        File “numpy.py”, line 1, in
        import numpy as np
        File “C:\Users\Thomas\OneDrive\Programmering\Programmer\Læring 1\numpy.py”,
        line 7, in
        summa(4)
        File “C:\Users\Thomas\OneDrive\Programmering\Programmer\Læring 1\numpy.py”,
        line 4, in summa
        z = np.sum(tal)
        AttributeError: module ‘numpy’ has no attribute ‘sum’
        PS C:\Users\Thomas\OneDrive\Programmering\Programmer\Læring 1>

        1. Simon R. siger:

          Okay, vil du prøve at skrive “pip install numpy” i terminalen og lige vende tilbage med det som den svare? :)