Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    [Python] Indovina il numero. Voi come l'avreste scritto?

    Ciao,
    Sto studiano Python da poco e sto facendo pratica adesso con il ciclo while ed l'input.
    Ho provato a scrivere un piccolo programma che mi permettese di mettere in pratica quel che ho imparato.
    In sostanza si chiede all'utente di inserire un numero da 1 a 10 e indovinare il numero fortunato impostato.
    Si possono fare massimo 3 tentativi.
    Questo il codice:

    codice:
    numfor = 8
    mass = 3
    temp = 0
    rim = 0
    
    tentativi = []
    
    print("Indovina il numero fortunato da 1 a 10. Puoi fare max 3 tentativi. Buona fortuna!")
    
    while temp < mass:
        text = input("Inserisci numero da indovinare: ")
        text = int(text)
        if text == numfor:
            print(f"{numfor} è il numero corretto! Hai indovinato!")
            break
        else:
            temp += 1
            print(f"{text} non è il numero esatto.")
            rim = mass - temp
            if rim == 0:
                print("\nHai terminato le possibilità.")
            else:
                tentativi.append(text)
                print(f"Ti rimangono altri N° {rim} tentativi. Hai già inserito:")
                for n in tentativi:
                    print(f"\t - {n}")
    Il codice di per se funziona. Volevo però sapere se pensate ci siano delle criticità o se il codice è stato scritto in modo non efficiente. Insomma, voi come l'avreste codificato'?

    Grazie
    Ultima modifica di lucas726; 16-03-2021 a 19:34

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Io avrei usato for con range invece di while
    e forse semplificato la parte con gli if

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Io avrei usato for con range invece di while
    e forse semplificato la parte con gli if
    mi interessa capire come avresti semplificato la parte con gli if.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Il primo if è ok
    L’else successivo non lo metterei ma farei continuare il programma con il messaggio (il break nel primo if fa uscire subito)
    Per l’if seguente controllerei se hai raggiunto il massimo di iterazioni del for, se si messaggio di uscita e break
    Eliminerei l’ultimo else facendo l’append e poi calcolando i tentativi rimasti e mostrando il messaggio e facendo il join sulla lista senza il for che metti alla fine

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Contare verso lo zero ha più senso in questo caso
    codice:
    tentativi = 3
    while tentativi > 0:
        ...
        ...
        tentativi -= 1
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Contare verso lo zero ha più senso in questo caso
    codice:
    tentativi = 3
    while tentativi > 0:
        ...
        ...
        tentativi -= 1
    ok, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.