Inserire controllo nella funzione python

di il
1 risposte

Inserire controllo nella funzione python

Buonasera a tutti,

recentemente mi è stato chiesto dal mio professore di scrivere una funzione in python del seguente tipo:
data una lista di input, la funzione crea una nuova lista,se all'interno della lista input vi è una stringa(del tipo gg-mm-aa) corrispondente ad una data "corretta" nella nuova lista viene riportato il mese corrispondente, altrimenti viene riportato *.

esempio:
In funzione(['28-02-2016','31-02-2016'])
Out ['febbraio', '*']

se invece provo a scrivere funzione[(28-02-20a1)] mi ritorna:

7 if month in months.keys():
----> 8 if int(monthStr[:2]) <= calendar.monthrange(int(monthStr[-4:]), int(monthStr[3:5]))[1]:
9 returnList.append(months[month])
10 else:

ValueError: invalid literal for int() with base 10: '20a1'

c'è un modo per inserire un controllo e far ritornare '*' nella nuova lista?

grazie per l'attenzione

1 Risposte

  • Re: Inserire controllo nella funzione python

    Div ha scritto:


    ValueError: invalid literal for int() with base 10: '20a1'

    c'è un modo per inserire un controllo e far ritornare '*' nella nuova lista?
    Se il problema è il ValueError .... catturalo! Se hai un ValueError sai quindi che qualcosa nei numeri delle date è "malformato" e di conseguenza andrai a mettere un "*".

    P.S. se non sai come catturare una eccezione in Python, ovviamente si tratta di studiare/documentarsi.
Devi accedere o registrarti per scrivere nel forum
1 risposte