2010-10-18 6 views
1

J'ai l'exercice suivant:fonction Python imprime Aucun

Le jour de la semaine de paramètre est Vrai s'il est un jour de la semaine, et le paramètre vacances est vrai si nous sommes en vacances. Nous dormir si ce n'est pas un jour de semaine ou nous sommes en vacances. Retour Vrai si nous dormir.

Voici ce que je l'ai fait, mais la seconde fonction d'impression imprime uniquement 'None'.

def sleep_in(weekday, vacation): 
    if(not weekday or vacation): 
     return True 

print(sleep_in(False, False)) 
print(sleep_in(True, False)) 
print(sleep_in(False, True)) 

Sortie:

True 
None 
True 

Répondre

5

Fonctions en retour python None, sauf indication contraire explicitement de faire autrement.

Dans votre fonction ci-dessus, vous ne tenez pas compte du cas où le jour de la semaine est True. L'interpréteur atteint la fin de la fonction sans lire une instruction return (puisque la condition qui précède la vôtre évalue à False) et renvoie None.

Modifier:

def sleep_in(weekday, vacation): 
    return (not weekday or vacation) 

There you go =)

+0

vous n'avez pas besoin entre parenthèses il – SilentGhost

+1

@SilentGhost: Les parens ne sont pas nécessaires, oui, mais ils ajoutent sans doute la clarté. – delnan

+0

@delnan: et vision obscure. – SilentGhost

Questions connexes