2015-07-04 10 views
5

Ho scritto il codice qui sotto per ottenere i valori max e min come parte del mio compito MOOC. Questo programma riceve continuamente input dall'utente fino a quando l'utente digita "done".Python: programma per ottenere il valore massimo e minimo senza utilizzare la funzione max e min

Dopo aver digitato "done", il programma fornisce i risultati per i valori massimi e minimi. Il problema è che il risultato per il valore massimo è sempre corretto, ma il risultato per il valore minimo è sempre "Nessuno".

largest = None 
smallest = None 
while (True) : 
    inp = raw_input('Enter a number: ') 
    if inp == 'done' : 
     break 
    try: 
     inp = float(inp) 
    except: 
     print 'Invalid input' 
    continue 
    if inp is None or inp > largest: 
     largest = inp 
    if inp is None or inp < smallest: 
     smallest = inp 
print largest, smallest 

risposta

3

Il codice che hai postato indica Nessuno per il più grande e il più piccolo. C'è una dichiarazione continua dopo aver provato a prendere, quindi ovviamente continua a prendere input e non termina mai. continua dirà al ciclo di saltare alla successiva iterazione. Quindi il continuo deve venire nel blocco tranne (questo è probabilmente un errore di indentazione). In secondo luogo, stai confrontando l'input con Nessuno. Credo che fosse un errore di battitura in voi se la condizione (che dovrebbe essere 'se grande è None' non e 'se INP è Nessuno')

Codice modificato: (controllare lo scorso 2 se le condizioni):

largest = None 
smallest = None 
while (True) : 
    inp = raw_input('Enter a number: ') 
    if inp == 'done' : 
     break 
    try: 
     inp = float(inp) 
    except: 
     print 'Invalid input' 
     continue 
    if largest is None or inp > largest: 
     largest = inp 
    if smallest is None or inp < smallest: 
     smallest = inp 
print largest, smallest 
+3

È vuoi l'istruzione continue all'interno del blocco tranne, altrimenti chissà che cosa è inp (come una stringa!) – MasterOdin

+0

Sì, mi dispiace, mi sono perso! Grazie! @MasterOdin – Quark

+0

L'intenzione di escludere il blocco è che se l'utente immette qualcosa di diverso dal valore numerico come stringhe o altri tipi di dati, stampa solo Input non valido e torna all'inizio perché non è necessario alcun altro tipo di dati. E ho fatto questo incarico Bene, grazie per il tuo aiuto. –

Problemi correlati