Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sisäkkäinen While-silmukka | Sisäkkäiset silmukat
Python-silmukoiden Opas
Osio 3. Luku 2
single

single

Sisäkkäinen While-silmukka

Pyyhkäise näyttääksesi valikon

Tietojen järjestäminen tai analysointi useilla tasoilla voi olla tarpeen, esimerkiksi eri matkojen kulujen seuraaminen. Sisäkkäinen while-silmukka mahdollistaa tällaisten moniulotteisten tilanteiden käsittelyn tehokkaasti silloin, kun toistojen määrä ei ole ennalta tiedossa.

Kuvittele, että sinulla on useita matkoja ja jokaisella matkalla on lista kuluista (lennot, hotellit, ruoka jne.). Käyttämällä sisäkkäistä while-silmukkaa voit laskea jokaisen matkan kokonaiskustannukset.

12345678910111213141516171819202122232425262728293031323334
# List of trips with their respective expenses travel_costs = [ [500, 200, 100, 150], # Trip 1: Flights, Hotels, Food, Activities [600, 250, 120, 200], # Trip 2: Flights, Hotels, Food, Activities [550, 180, 130, 170] # Trip 3: Flights, Hotels, Food, Activities ] # Variables to track the maximum cost max_cost = 0 max_trip = 0 # Outer loop to iterate over trips i = 0 while i < len(travel_costs): total_cost = 0 j = 0 # Inner loop to iterate over expenses in each trip while j < len(travel_costs[i]): total_cost += travel_costs[i][j] j += 1 # Print the total cost for the current trip print('Total cost for Trip', i + 1, ':', total_cost) # Check if this trip is the new maximum if total_cost > max_cost: max_cost = total_cost max_trip = i + 1 i += 1 # Final output: print the trip with the highest total cost print("Trip", max_trip, "has the highest total cost of", max_cost)
  • Ulkoinen silmukka: while i < len(travel_costs) käy läpi matkojen listan, jossa jokainen rivi edustaa yhden matkan kuluja;
  • Sisäinen silmukka: while j < len(travel_costs[i]) käy läpi nykyisen matkan kulut ja laskee ne yhteen muuttujaan total_cost;
  • Tulosten tulostus: kulujen yhteenlaskun jälkeen ohjelma tulostaa kyseisen matkan kokonaiskustannukset;
  • Siirtyminen seuraavaan matkaan: muuttujaa i kasvatetaan, jotta analysoidaan seuraava matka, kunnes kaikki matkat on käsitelty;
  • Lopputulos: silmukoiden jälkeen tulostetaan sen matkan numero, jolla on suurimmat kokonaiskustannukset, sekä kustannuksen arvo.
Note
Huomio

Sisäkkäisiä silmukoita käytetään yleisesti n-ulotteisten matriisien läpikäyntiin, missä jokainen sisäkkäisyyden taso vastaa yhtä ulottuvuutta. Tehtävissämme käsittelemme 2-ulotteista matriisia, kuten matkojen ja niiden kulujen listaa. Sisäkkäiset silmukat ovat hyödyllisiä myös dynaamisissa silmukointitilanteissa, kuten syötteen validoinnissa tai monitasoisten valikoiden läpikäynnissä, joissa toistojen määrä ei ole kiinteä vaan riippuu muuttuvista ehdoista tai käyttäjän syötteestä.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Analysoit matkakustannusten tietojoukkoa, jossa jokainen alilista edustaa yksittäisen matkan kuluja. Jokainen matka sisältää erilaisia kustannuksia, kuten lennot, hotellit, ruoka ja aktiviteetit. Koska kulut vaihtelevat, sinun tulee tunnistaa jokaisen matkan suurin yksittäinen kulu suurimpien kustannusten seuraamiseksi.

  1. Saat listan travel_costs, jossa jokainen alilista kuvaa yhden matkan kulut.
  2. Tunnista jokaisesta matkasta suurin yksittäinen kulu.
  3. Tallenna suurimmat kulut listaan max_costs.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt