Le calcul de l'âge en python
Je cherche à créer un code où l'utilisateur est invité à leur date de naissance et la date du jour afin de déterminer leur âge. Ce que j'ai écrit jusqu'à présent est:
print("Your date of birth (mm dd yyyy)")
Date_of_birth = input("--->")
print("Today's date: (mm dd yyyy)")
Todays_date = input("--->")
from datetime import date
def calculate_age(born):
today = date.today()
return today.year - born.year - ((today.month, today.day) < (born.month, born.day))
age = calculate_age(Date_of_birth)
Cependant, il n'est pas en cours d'exécution comme je l'espère. Quelqu'un pourrait-il m'expliquer ce que je fais de mal?
offtopic: ne jamais démarrer le nom d'une variable avec des majuscules, utilisez
Comment est-il pas en cours d'exécution que vous espérez? Veuillez expliquer.
Il ne fonctionne pas du tout, il se lève et dit 'str' n'a pas d'attribut de l'année
Lorsque vous postez une question à vous donner le message d'erreur. Quelque chose comme
En entrée est une chaîne de texte pas un objet date. Vous avez besoin de co nvert avec avec born = datetime.strptime(Date_of_birth, "%m %d %Y") de même pour Todays_date si c'est la valeur d'entrée
date_of_birth
et todays_date
à la place.Comment est-il pas en cours d'exécution que vous espérez? Veuillez expliquer.
Il ne fonctionne pas du tout, il se lève et dit 'str' n'a pas d'attribut de l'année
Lorsque vous postez une question à vous donner le message d'erreur. Quelque chose comme
"3 14 1995"
est juste une chaîne de caractères. Python ne pas l'interpréter comme une date, sauf si vous lui dites.En entrée est une chaîne de texte pas un objet date. Vous avez besoin de co nvert avec avec born = datetime.strptime(Date_of_birth, "%m %d %Y") de même pour Todays_date si c'est la valeur d'entrée
OriginalL'auteur A. Gunter | 2017-03-16
Vous devez vous connecter pour publier un commentaire.
Si proche!
Vous avez besoin de convertir la chaîne de caractères dans un objet datetime avant de vous peut faire des calculs sur - voir
datetime.datetime.strptime()
.Pour la date de votre entrée, vous devez faire:
PS: je vous invite à utiliser un bon de commande d'entrée -
dd mm yyyy
ou la norme ISOyyyy mm dd
mm dd yyyy
est assez sensible et commun aux etats-unisMalheureusement, oui...
Je vous remercie beaucoup pour votre aide! Cette effacé pour moi!
OriginalL'auteur Attie
Cela devrait fonctionner 🙂
OriginalL'auteur Dani Medina
Vous pouvez également utiliser la date de la bibliothèque de cette manière. Permet de calculer l'âge en années et supprime l'erreur logique qui renvoie mauvaise en raison de l'âge pour le mois et le jour des propriétés
Comme une personne née le 31 juillet 1999, est un jeune de 17 ans jusqu'au 30 juillet 2017
Donc voici le code :
OriginalL'auteur Yogesh Manghnani