有一个相当简单的程序,输入生日,给出生日的日期和月份作为timedate对象,例如19 May,并有一个有12个键的字典,又名January到December,寻找一种方法来使用字典方法获取作为字符串输入的月份值,然后转换为timedate对象。
#input birthday string
birthday = str(input("Please enter you birthday in the following format: dd/mm/yyyy."))
birthdate = datetime.strptime(birthday, "%d/%m/%Y") #formatting of input
birthdate2 = datetime.strftime(birthdate, "%d %B") #day and month object
print("Your birthday is on", birthdate2) #print the day and month object
#dictionary
famousBirthdays = {
"January": "Mozart",
"February": "Charles Darwin",
"March": "Albert Einstein",
"April": "Elizabeth II",
"May": "Linnaeus",
"June": "Josephine Baker",
"July": "Frida Kahlo",
"August": "Barack Obama",
"September": "Elizabeth I",
"October": "Gandhi",
"November": "Marie Curie",
"December": "Emily Dickinson"
}
到目前为止还没有尝试太多,因为对python来说非常陌生,并且很难想出任何想法,我想到的最好的想法是将月份隔离在一个新的timedate
对象中,并编写一个语句来根据输入比较两者,并在dictionary
中提取相应的值,但不确定从哪里开始
1条答案
按热度按时间eivgtgni1#
谢谢你在评论中的帮助,谢谢,Bijay Regmi。找到了一个解决方案,在timedate位上添加一行,一个更简单的处理方法可能是使用数字日期来简化事情。需求限制了我,但一个简单的解决方案仍然是非常赞赏。
在birthdate2和print birthmonth = datetime之间添加。strftime(birthdate,“%B”)
在字典famous_person = famousBirthdays[birthmonth]后的末尾添加
print(famous_person)