Perché usiamo "asserire non" in questo esempio?

-1

Il mio codice richiede 2 date e trova l'età di quelle date in giorni. Nei miei giorni, il metodo BetweenDates, l'istruttore utilizza un'asserzione:

assert not dateIsBefore(year2, month2, day2, year1, month1, day1)

La mia domanda è, perché devi usare 'asserire no' in questo esempio e nella firma perché è year2, month2, day2 prima quando nel metodo dateIsBefore è year1, month1, day2, year2, month2, day2 . Ecco il resto del codice.

def dateIsBefore(year1, month1, day1, year2, month2, day2):
    if year2 > year1:
        return True
    else: #if year1 > year or year1 = year2
        if year2 == year1:
            if month2 > month1:
                return True
            else:
                if month2 == month1:
                    if day2 > day1:
                        return True
                    else:
                        return False
                return False

        return False


def nextday(year, month, day):
    if day < 30:
        return year, month, day + 1
    else: # if day >= 30
        if month < 12:
            return year, month + 1, 1
        else: # month >= 12
            return year + 1, 1, 1


def daysBetweenDates(year1, month1, day1, year2, month2, day2):
    #assert dateIsBefore(year1, month1, day1, year2, month2, day2)
    **assert not dateIsBefore(year2, month2, day2, year1, month1, day1)**
    days = 0
    while dateIsBefore(year1, month1, day1, year2, month2, day2):
        year1, month1, day1 = nextday(year1, month1, day1)
        days += 1
    return days
    
posta johnnewbie 22.08.2016 - 22:26
fonte

1 risposta

0
assert x < 5
assert not x < 1

è un modo per dire

assert (1 <= x and x < 5)

ma, a differenza di questo, ti dirà quale condizione ha fallito.

    
risposta data 23.08.2016 - 05:08
fonte

Leggi altre domande sui tag