Help su programma

di il
4 risposte

Help su programma

Salve a tutti, 

grazie per avermi accettato.

Ho un problema con un programma in python e non riesco a capire dove sta l'errore

Il programma in questione è il seguente:

---------------------------------------------------------------------

import time
import random

Cartoons = ['Looney Tunes','Spongebob','Dragonball','Masha e orso','Thunderman','Danger Force','Pan Barbiere','Winnie The Pooh','Tom e Jerry','La Pimpa']
print('*' * 10, 'ChatBot', '*' * 10)
time.sleep(1)
name = input("Ciao! come ti chiami? ??")
time.sleep(1)
while True:
   print(name, ' Quale comando scegli? ')
   print('Mostrare la lista', 'Rimuovere dalla lista', 'Aggiungere alla lista', 'Mostrare un elemento casuale')
   command = input('')
   if command == 'Mostrare la lista':
       for i in Cartoons:
         print(i)
   elif command  ==  'Aggiungere alla lista':
      for i in Cartoons:
          print(i)
      aggiungere =input("Cosa vuoi aggiungere alla lista?")
      Cartoons.append(aggiungere)
      for i in Cartoons:
          print(i)
   elif command == 'Rimuovere dalla lista':
      for i in Cartoons:
         print(i)
         rimuovi =input("Cosa vuoi rimuovere dalla lista?")
         if rimuovi not in Cartoons:
             rimuovi =input("Cosa vuoi rimuovere dalla lista?")
         elif rimuovi in Cartoons:
              Cartoons.remove(rimuovi)
              print(i)
   elif command ==  'Mostrare un elemento casuale':
      print(random.choice(Cartoons))
   else:
      print("Non è nella lista...")
________________________________________________________________________

Funziona tutto a parte che ho evidenziato in grassetto: quando si chiede di Rimuovere dalla lista, mostra solo il primo degli oggetti e se si indica un oggetto presente nella lista. Qualcuno sa dirmi dove è l'errore?

Grazie mille.

A.

4 Risposte

  • Re: Help su programma

    11/02/2026 - Accipiter ha scritto:

    quando si chiede di Rimuovere dalla lista, mostra solo il primo degli oggetti

    È un problema di indentazione. Quando entri nel for, stampi l'i-esimo elemento e poi aspetti l'input.

    Devi togliere 4 spazi a sinistra dall'input in poi, per tutta la parte in grassetto.

    Per il futuro, usa il tag apposito per il codice, soprattutto per il Python vista l'estrema importanza che ha appunto l'indentazione.

  • Re: Help su programma

    Grazie innanzitutto per la risposta.

    Se tolgo i 4 spazi a sinistra dell'input per tutta la parte in grassetto, effettivamente mi stampa tutta la lista, ma quando digito un nome da togliere dalla lista, invece di ristampare la lista senza il nome digitato, mi stampa solo il nome digitato.

    A.

  • Re: Help su programma

    Grazie innanzitutto per la risposta.

    Se tolgo i 4 spazi a sinistra dell'input per tutta la parte in grassetto, effettivamente mi stampa tutta la lista, ma quando digito un nome da togliere dalla lista, invece di ristampare la lista senza il nome digitato, mi stampa solo il nome digitato.

    A.

  • Re: Help su programma

    12/02/2026 - Accipiter ha scritto:

    invece di ristampare la lista senza il nome digitato, mi stampa solo il nome digitato

    Perché è quel che gli hai scritto di fare. Devi correggere l'algoritmo, affinando il ragionamento: quel che immagino tu voglia fare è:

    1. Stampare la lista;
    2. Richiedere l'input all'utente;
    3. verificare che l'input sia corretto (ossia presente nella lista).
    4. se è corretto, elimina ed "esci";
    5. se non è corretto torna al punto 2.

    Quindi ti serve un ciclo che continui potenzialmente all'infinito ed un for in questo caso non va bene dato che è pensato per essere eseguito al massimo un predeterminato numero di volte.

    Devi "ricliclare" l'idea del while principale e riadattarla per questo caso specifico.

Devi accedere o registrarti per scrivere nel forum
4 risposte