gars, je fais un problème pour entrer une date de naissance dans le format DD / mm / aaaa
Les instructions à suivre sont p>
Invitez l'utilisateur à entrer une date de naissance ci-dessous. p> li>
extraire les 3 champs en tranchant la chaîne en 3 tranches. Pour séparer la journée du mois, vous devrez d'abord utiliser la méthode de recherche () pour trouver la position de la première barre oblique. Pour séparer le mois de l'année, vous devrez utiliser la méthode J'ai essayé de faire des tranches de chaîne et une concaténation aux côtés d'indexation, mais je suis tout à fait fragile sur la façon de le faire, ou si je le fais même. N'étaient également pas autorisés à utiliser des déclarations conditionnelles. p> Le format attendu est: p> Entrez votre date de naissance: 30/8/1985 P> jour: 30 p> mois: 8 p> Année: 1985 p> p> RFind () code> pour trouver la position de la dernière barre oblique. p> li>
ol>
6 Réponses :
Utilisation de si votre instructeur insiste sur le RFind () CODE> est un chemin de rond-point pour le faire. Cela fonctionnera, mais vous seriez mieux avec (code> / / RFind code> approche que vous pouvez faire C'est de cette façon: p> day = birthday[:birthday.find("/")]
month = birthday[birthday.find("/")+1:-birthday.rfind("/")-1]
year = birthday[-birthday.rfind("/"):]
birthday = input("Enter your date of birth: ",)
birthday_list = birthday.split("/")
print("Day: ",birthday_list[0])
print("Month: ", birthday_list[1])
print("Year: ", birthday_list[2])
Vous pouvez utiliser regex. Ensuite, vous pouvez obtenir un jour, un mois, une année à partir de cela.
Veuillez vous reporter https://docs.python.org/3/library/ DateTime.html # Objets de date P> P>
Si vous avez un traitement supplémentaire de la date, le module DateTime CODE> est utile: from datetime import datetime
birthday = input("Enter your date of birth: ")
bday = datetime.strptime(birthday, '%d/%m/%Y')
print(f'Day: {bday.day}')
print(f'Month: {bday.month}')
print(f'Year: {bday.year}')
lire depuis Docs sur sortie: strong> p> Trouver code> et RFind code>. Ils renvoient les indices les plus bas et les plus élevés de l'occurrence trouvée. Donc, vous devriez faire à la place:
Cela fonctionne de façon passée:
Essayez
jour, mois, année = anniversaire.split ('/') code>Utilisation de
Rechercher code> etRFind code> au lieu de la scission est inefficace. Votre code manque de la pièce code> code>, vous obtenez uniquement index i> - Vous devez toujours trancher la chaîne dans les données que vous souhaitez - quel est votre problème? Les questions demandant une aide aux devoirs doivent inclure un résumé du travail que vous avez effectué jusqu'à présent pour résoudre le problème et une description de la difficulté que vous avez la résolution. Veuillez lire Comment demander des questions sur les devoirs et Modifier votre message.