3 svar
71 visningar
maialk 190
Postad: 9 okt 2023 10:02

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

CurtJ 1200
Postad: 9 okt 2023 10:06

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. 

anders_k 237
Postad: 10 okt 2023 04:50 Redigerad: 10 okt 2023 04:57
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.

CurtJ 1200
Postad: 10 okt 2023 13:32

Rätt så, slarvigt av mig. 

Svara
Close