Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara If/Else in un Ciclo Annidato | Cicli Annidati
Tutorial sui Cicli in Python

book
If/Else in un Ciclo Annidato

Le istruzioni if/else sono essenziali per aggiungere condizioni ai cicli annidati. Consentono di filtrare, elaborare o categorizzare i dati, come identificare valori specifici in elenchi o matrici.

Adattiamo questo concetto a un compito pratico: filtrare le spese di viaggio. Se una spesa supera una certa soglia di budget, la segneremo come "Expensive"; altrimenti, stamperemo la spesa originale.

Supponiamo di avere un elenco di viaggi e ogni viaggio contenga spese per categorie come voli, hotel, cibo e attività. Il tuo obiettivo è controllare ogni spesa:

  • Se la spesa supera $200, segnarla come Expensive;

  • Altrimenti, stampare la spesa originale.

# Travel expenses for multiple trips
travel_costs = [
[500, 150, 100, 50], # Trip 1
[200, 300, 120, 80], # Trip 2
[180, 220, 130, 170] # Trip 3
]

# Setting outer while loop to work with rows (trips)
i = 0
while i < len(travel_costs):
j = 0
print(f"Trip {i + 1} expenses: ", end='') # Label for the current trip

# Setting inner while loop to work with expenses in the current trip
while j < len(travel_costs[i]):
if travel_costs[i][j] > 200: # Check if expense is greater than 200
print('Expensive', end=' ')
else:
print(travel_costs[i][j], end=' ')
j += 1 # Move to the next expense
print('') # Move to the next line after each trip
i += 1 # Move to the next trip
1234567891011121314151617181920212223
# Travel expenses for multiple trips travel_costs = [ [500, 150, 100, 50], # Trip 1 [200, 300, 120, 80], # Trip 2 [180, 220, 130, 170] # Trip 3 ] # Setting outer while loop to work with rows (trips) i = 0 while i < len(travel_costs): j = 0 print(f"Trip {i + 1} expenses: ", end='') # Label for the current trip # Setting inner while loop to work with expenses in the current trip while j < len(travel_costs[i]): if travel_costs[i][j] > 200: # Check if expense is greater than 200 print('Expensive', end=' ') else: print(travel_costs[i][j], end=' ') j += 1 # Move to the next expense print('') # Move to the next line after each trip i += 1 # Move to the next trip
copy
  • Il ciclo while esterno itera attraverso ogni viaggio nella lista travel_costs usando l'indice i;

  • Il ciclo while interno attraversa le spese per il viaggio corrente usando l'indice j;

  • La condizioneif/else verifica se una spesa è maggiore di $200;

  • Dopo aver elaborato tutte le spese per un viaggio, il programma passa alla riga successiva e procede al viaggio successivo.

Compito

Swipe to start coding

Ti viene fornito un elenco di spese di viaggio per più viaggi. Ogni viaggio è rappresentato come una lista annidata contenente varie spese come trasporto, alloggio, cibo e attività. Il tuo compito è elaborare queste spese identificando i "costi economici" mantenendo la stessa struttura annidata.

  • Ti viene fornito un elenco bidimensionale (elenco di elenchi), dove ogni elenco interno rappresenta le spese di un singolo viaggio.
  • Itera attraverso l'elenco delle spese di ogni viaggio.
  • Sostituisci qualsiasi spesa di $100 o meno con "Cheap", mantenendo inalterati gli altri valori.
  • Memorizza le spese trasformate in un nuovo elenco bidimensionale con la stessa struttura

Soluzione

# Travel expenses for multiple trips
travel_costs = [[500, 150, 100, 50],[200, 300, 120, 80],
[180, 220, 130, 170], [600, 250, 200, 90],
[300, 180, 150, 70], [400, 320, 110, 100],
[550, 270, 180, 60], [250, 190, 140, 120],
[700, 350, 210, 110], [450, 230, 160, 95],
[320, 280, 190, 85], [580, 260, 175, 75]]

# List to store processed expenses
processed_expenses = []

# Process each trip
i = 0
while i < len(travel_costs):
j = 0
trip_expenses = []

while j < len(travel_costs[i]):
if travel_costs[i][j] <= 100:
trip_expenses.append('Cheap')
else:
trip_expenses.append(travel_costs[i][j])
j += 1

processed_expenses.append(trip_expenses)
i += 1

# Testing
print('Processed Travel Expenses:', processed_expenses)
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3
# Travel expenses for multiple trips
travel_costs = [[500, 150, 100, 50],[200, 300, 120, 80],
[180, 220, 130, 170], [600, 250, 200, 90],
[300, 180, 150, 70], [400, 320, 110, 100],
[550, 270, 180, 60], [250, 190, 140, 120],
[700, 350, 210, 110], [450, 230, 160, 95],
[320, 280, 190, 85], [580, 260, 175, 75]]

# List to store processed expenses
processed_expenses = []



# Testing
print('Processed Travel Expenses:', processed_expenses)

Chieda ad AI

expand
ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt