Vad betyder det här?
Hej!
Vad betyder det här och vad är det som händer? (rad 8):
return max(n, s(l[n:]) if l else 0)
Tacksam för hjälp!
Mvh KriAno
l[n:] är slutet av listan efter det n:te elementet om det var det du tänkte på?
Du har nog sett alla beståndsdelar redan, utom möjligen
a if b else c
är ett uttryck som evalueras till antingen a eller c. Om b är sant så blir det a, annars c.
Ok tack för svar! :)
Men vad betyder det första n:et, och if l?:
max(n, s(l[n:]) if l else 0)
KriAno skrev:Ok tack för svar! :)
Men vad betyder det första n:et, och if l?:
max(n, s(l[n:]) if l else 0)
n är bara nåt tal, som har räknats ut i loopen innan. Vad den här koden faktiskt gör blir nästa steg att ta reda på.
Eftersom l är en lista så är "if l" samma sak som "if l != []". Tom lista räknas som falsk i booleska sammanhang i Python, liksom 0, None och några andra objekt. Ibland praktiskt, ibland en källa till fel.
Laguna skrev:KriAno skrev:Ok tack för svar! :)
Men vad betyder det första n:et, och if l?:
max(n, s(l[n:]) if l else 0)
n är bara nåt tal, som har räknats ut i loopen innan. Vad den här koden faktiskt gör blir nästa steg att ta reda på.
Eftersom l är en lista så är "if l" samma sak som "if l != []". Tom lista räknas som falsk i booleska sammanhang i Python, liksom 0, None och några andra objekt. Ibland praktiskt, ibland en källa till fel.
Ok tack! Har dock två fundering:
1. Jag förstår inte riktigt hur max fungerar här:
max(n, s(l[n:]) if l else 0)
Från vad tar programmet det högsta värdet?
2. Vad menas med else 0?
man kan skriva om uttrycket såhär, förstår du det bättre då?:
if len(l) == 0:
x = 0
else:
x = s(l[n:])
return max(n, x)
KriAno skrev:Laguna skrev:KriAno skrev:Ok tack för svar! :)
Men vad betyder det första n:et, och if l?:
max(n, s(l[n:]) if l else 0)
n är bara nåt tal, som har räknats ut i loopen innan. Vad den här koden faktiskt gör blir nästa steg att ta reda på.
Eftersom l är en lista så är "if l" samma sak som "if l != []". Tom lista räknas som falsk i booleska sammanhang i Python, liksom 0, None och några andra objekt. Ibland praktiskt, ibland en källa till fel.
Ok tack! Har dock två fundering:
1. Jag förstår inte riktigt hur max fungerar här:
max(n, s(l[n:]) if l else 0)
Från vad tar programmet det högsta värdet?
2. Vad menas med else 0?
1. max får två tal som argument.
2.Det svarade jag på i mitt första svar.