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!

  • Rene M. siger:

    Hej Simon, håber det går godt med eksamen

    kan du hjælpe mig , er kørt lidt fast i loops
    jeg ville gerne , at man kan vende tilbage til at man skal svare ja eller nej for at komme videre igen.. hvis man ikke skriver ja eller nej ..
    findes der en måde man kan det på..

    https://pastebin.com/Ht1c2a1j

    1. Simon R. siger:

      Jo tak, det er snart færdigt heldigvis.

      Det du har nu virker fint, bortset fra at du sammenligner direkte med ja eller nej, når du bare skriver ja, så er det et variable, du vil gerne sammenligne med en streng, så du vil gerne sammenligne med “ja” og “nej” i stedet. Hvis du gør det så tror jeg du har det du leder efter :)

  • Rene M. siger:

    måske det er nemmere, at se her ??

    https://pastebin.com/Dn629tPk

  • Rene M. siger:

    PS C:\Users\rmlas\Desktop> python .\test.py
    File “.\test.py”, line 12
    elif:

  • Rene M. siger:

    hvorfor virker det her ikke ;o(

    print(“dette er et program der fortæller dig om et Heltal er lige eller ulige\n”)

    while(True):

    ditValg = input(“Skriv dit Heltal…””\n””\n””hvis du ønsker at stoppe, skriv da stop””\n””\n”)

    if ditValg == “stop”:
    break

    if int(ditValg) % 2 == 0:

    elif:
    print(“dit tal er et ulige tal””\n”)

    else:
    print(“…Du må kun skrive heltal..!!!””)

  • Rene M. siger:

    Har prøvet Henriks måde , men får denne fejl:

    File “.\ligeellerulige.py”, line 4
    if int(ditValg) % 2 == 0:
    ^
    IndentationError: unexpected indent

    programmet er nedenunder i dens fulde tekst

    print(“dette er et program der fortæller dig om et Heltal er lige eller ulige\n”)
    ditValg = input(“Skriv dit Heltal\n”)

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

    1. Simon R. siger:

      Hej Rene,

      Jeg tror problemet ligger i at forummet her på Nemprogrammering fjerner whitespaces, dvs. der mangler nogle mellemrum foran de to print. Så prøv at kopiere det fra linket herunder og se om det ikke virker. Grunden til at det skal rykkes ind er at Python skal vide hvilken del af koden hører til if linjen, og det gør man ved at rykke det et styk ind.

      https://pastebin.com/Pnw4fxSU

      Mvh.
      Simon

      1. Rene M. siger:

        det var squ det …

        TAk Simon ..

        1. Simon R. siger:

          Det var så lidt :)

  • 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? :)