2009-10-30 9 views
0

Ma fonction estdoctest ne inspite d'avoir une sortie correcte

def validate_latitude(lat): 
    """Enforce latitude is in range 
    >>> validate_latitude(65) 
    65 
    >>> validate_latitude(91) 
    90 
    >>> validate_latitude(-91) 
    -90  
    """ 
    lat = min(lat, 90) 
    lat = max(lat, -90) 
    return lat 

Et le test échoue avec cette sortie

********************************************************************** 
File "packages/utils.py", line 64, in __main__.validate_latitude 
Failed example: 
    validate_latitude(-91) 
Expected: 
    -90  
Got: 
    -90 
********************************************************************** 

ne peux pas voir pourquoi il échoue en dépit d'avoir la sortie deisred

Répondre

3

Dans ces deux lignes:

>>> validate_latitude(-91) 
-90  

Vous avez un caractère de tabulation avant la - dans -90, et quatre caractères espace après le 0. Lorsque doctests exécute ce code, l'espace supplémentaire n'est bien sûr pas produit, donc la comparaison d'égalité échoue.

De bons éditeurs, par ex. vim, avoir des moyens de mettre en évidence les espaces de fuite, et les onglets parasites, afin que vous ne tombiez pas dans de tels accidents. Vous ne savez pas quel éditeur vous utilisez ou comment vous l'avez configuré, il est donc difficile de donner des conseils plus précis (outre le fait évident de vous assurer d'utiliser un éditeur avec de telles capacités, et d'activer les fonctionnalités en question ;-).

3

Espace blanc?

Si je surligne votre sortie, je peux voir des espaces supplémentaires suivant la valeur "Attendu". Je ne sais pas si c'est pertinent ou non.

Questions connexes