Funktioner
Hej! jag behöver hjälp med att förstå syftet med den här koden och hur används indexering? asså varför numbers[0]
def my_min(numbers):
min=numbers[0]
for i in range(1,len(numbers)):
If min> numbers[i]:
min=numbers[i]
return min
Att döma av namnet så bör funktionen returnera minvärdet i en lista av nummer men koden gör precis tvärt om. Den returnera det största värdet i listan.
Den börjar med att sätta det initiala värdet till det första värdet i listan. Sen går den igenom listan och för varje element jämför den med det värdet den lagrat och om det är större än det värde som lagrats tidigare så lagras det här värdet. Resultatet blir att när den gått igenom listan så har den sparat det största värdet i listan som funktionen sen returnerar.
Om den söker det minsta värdet (som namnet antyder) så ska villkoret vara
if min < numbers[i]:
och allt annat lika.
CurtJ skrev:Om den söker det minsta värdet (som namnet antyder) så ska villkoret vara
if min < numbers[i]:
och allt annat lika.
nej, det stämmer inte vad du säger, även om det kanske är lite baklänges så är vad han skrivet rätt.
normalt hade man nog skrivet
if numbers[i] < min:
Sen tar han första värdet i arrayen och gör det till det första minimum, sen går den igenom resten av arrayen för att försöka hitta ett ännu mindre värde.
If min> numbers[i]:
min=numbers[i]
om "min" är större än numbers[i] då är numbers[i] det nya min, vilket är rätt.
Rätt så, slarvigt av mig.