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?
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.
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!
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.
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)
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.
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..