6 svar
225 visningar
elikamedmc2 är nöjd med hjälpen
elikamedmc2 119
Postad: 9 feb 2022 17:11

Vad "betyder" -n och n+1 i detta fallet?

Hej, här är en bild på funktionen jag försöker förstå.

 

Jag försöker gå bakvänt och med hjälp av lösningen lista ut vad alla delar gör, men har lite problem med att förstå varför man sätter range från -n till n+1. Jag antar att -n står för start och n+1 står för stop.. är det helt fel? 

Laguna Online 28565
Postad: 9 feb 2022 17:22

Det stämmer, man börjar med -n och slutar med n (för man anger ett steg bortom slutpunkten).

Jag ser att koden är lurig, för sedan kommer en variabel som också heter n. Normal kod skulle använda ett annat namn.

elikamedmc2 119
Postad: 9 feb 2022 17:27
Laguna skrev:

Det stämmer, man börjar med -n och slutar med n (för man anger ett steg bortom slutpunkten).

Jag ser att koden är lurig, för sedan kommer en variabel som också heter n. Normal kod skulle använda ett annat namn.

Koden ger en "studsning" av talen n som anges vid tillkallningen av funktionen, alltså printar den ut talet n, n-1, n-2 etc, till 0, och sedan tillbaka till n (Vilket kanske var självklart för er). Varför skriver man då -n som start? Blir inte det t.ex. -5, om man hade skrivit >>> world(5) ? Eller rättare sagt, VARFÖR blir det inte det? 

Tack för ert snabba svar!

Laguna Online 28565
Postad: 9 feb 2022 17:33

Jo, n inuti loopen börjar med värdet -5 i så fall, men sedan skriver man ut -n för att n är negativt, dvs. man skriver ut 5.

elikamedmc2 119
Postad: 9 feb 2022 17:41
Laguna skrev:

Jo, n inuti loopen börjar med värdet -5 i så fall, men sedan skriver man ut -n för att n är negativt, dvs. man skriver ut 5.

Okej så -n direkt efter range är inte samma -n som direkt efter print...? (vilket är vad du kanske menade tidigare)

Laguna Online 28565
Postad: 9 feb 2022 17:50

Det skulle kunna stå så här lika gärna:

def world(n):

     for i in range(-n, n+1):

         if i < 0:

            print(-i)

         else:

            print(i)

 

och då är n 5 hela tiden, och i börjar med att vara -5.

elikamedmc2 119
Postad: 9 feb 2022 17:55
Laguna skrev:

Det skulle kunna stå så här lika gärna:

def world(n):

     for i in range(-n, n+1):

         if i < 0:

            print(-i)

         else:

            print(i)

 

och då är n 5 hela tiden, och i börjar med att vara -5.

Ja, det är så alltså! Tack så mycket :) Nu börjar det förstås lite här..

Svara Avbryt
Close