Pour un exercice, je suis censé écrire une fonction avec deux dates comme entrées variables et les comparer. Cependant, quelle que soit la manière dont j'essaie de définir la fonction, cela me donne une syntaxe invalide.
J'essaie de faire quelque chose comme ceci:
birthday(date(1969, 10, 5), date(2015, 10, 5))
Il est prévu que la fonction s'appelle ainsi:
from datetime import date
def birthday(date(year1, month1, day1), date(year2, month2, day2)):
party = False
if month1 == month2 and day1 == day2:
party = True
return party
3 Réponses :
Vous ne déclarez pas les composants des dates dans les arguments de la fonction car ce sont des dates prêtes à l'emploi qui lui sont passées, comme indiqué dans les exemples donnés, tels que
def birthday(date1, date2):
return date1.month == date2.month and date1.day == date2.day
Il vous suffit donc de:
bd1 = date(2000, 10, 20) bd2 = date(2008, 10, 20) bd3 = date(2000, 10, 1) print(birthday(bd1, bd2)) print(birthday(bd1, bd3))
Ensuite, vous pouvez faire
import datetime
from datetime import date
def birthday(date1, date2):
party = False
if date1.month == date2.month and date1.day == date2.day:
party = True
return party
Et obtenir la sortie
Vrai
Faux
(Vous n'aurez peut-être pas besoin de import datetime : je l'ai fait.)
Vous pouvez même raccourcir la fonction à
birthday(date(1969, 10, 5), date(2015, 10, 5))
Eh bien, la question n'est pas claire mais vous pouvez le faire de cette manière:
True
Output:
from datetime import date
def birthday(date1,date2):
party = False
if date1.month == date2.month and date1.day == date2.day:
party = True
return party
date1= date(2019, 4, 13)
date2= date(2019, 4, 13)
print(birthday(date1,date2))
Un peu d'explication sur la raison pour laquelle la fonction de l'OP ne fonctionnait pas pourrait vous aider à obtenir un vote positif;)
si vous voulez comparer le mois et le jour de 2 dates pour vérifier l'anniversaire, essayez le code de coup:
from datetime import date
def bd(d1: date, d2: date) -> bool:
return d1.month == d2.month and d1.day == d2.day
print(bd(date(1989, 8, 11), date(2019, 8, 11)))
Pouvez-vous modifier votre question pour donner un exemple de la façon dont vous souhaitez appeler la fonction?
dodona.ugent.be/en/courses/172/series / 1697 / exercices / 1652696 920
En tant que nouvel utilisateur de ce site, vous n'avez probablement pas vu ceci: Que dois-je faire lorsque quelqu'un répond à ma question? A >
En tant que nouvel utilisateur, je n'ai pas de privilèges de vote ...