我正在尝试打印生日男孩的名字。为此,我编写了以下代码:
import datetime
now = datetime.datetime.now()
a = now.strftime("%d-%B")
birthdays = {
'1-December': 'ALICE',
'19-December': 'BOB',
'20-May': 'MORRIS'
}
代码存储当今日期和月份中的变量a
。如果我的字典中的键与今天的日期和月相匹配,我想打印它是相应的价值,即生日男孩的名称。
我该怎么做?
您只需在字典上使用.get
调用即可检查任何生日。:
>>> import datetime
>>> now = datetime.datetime.now()
>>> today = now.strftime("%d-%B")
>>> birthdays = {
... '01-December': 'ALICE',
... '19-December': 'BOB',
... '20-May': 'MORRIS',
... '09-December': 'PRUDHVI'
... }
>>> birthday_today = birthdays.get(today)
>>> if birthday_today: print "Happy birthday %s!" % birthday_today
... else: print "No birthday today"
...
Happy birthday PRUDHVI!
请注意,您当前的方法有2个问题
- 您将生日保存为
1-December
,但日期字符串是01-December
的表格,strftime
逻辑 - 可能有多个男孩在同一日期有一个刻度,目前的词典将无法存储。使用列表而不是字符串来保存字典中的名称,例如:
birthdays = {'09-December': ['ALICE', 'BOB'], '20-May': ['MORRIS']}
两个步骤。1)检查键A是否在生日中2)打印它。
if a in birthdays:
print(birthdays[a])
编辑:
,甚至是Avihoo Mamka建议的更简单的。
birthdays.get(a, 'No birthday found for this date')