如果密钥与今天的日期匹配,则在python中打印值字段

时间:2016-12-09 12:06:16

标签: python datetime

我正在尝试打印生日男孩的名字。为此,我写了以下代码:

int yyerror(void) {
    if (gMyState== ERR_DECL) printf("Error in function declaration\n);
    else ...
}

代码中的变量import datetime now = datetime.datetime.now() a = now.strftime("%d-%B") birthdays = { '1-December': 'ALICE', '19-December': 'BOB', '20-May': 'MORRIS' } 存储了今天的日期和月份。如果我的词典中的键与今天的日期和月份匹配,我想打印它的相应值,即生日男孩的名字。

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

两个步骤。 1)检查钥匙a是否在生日 2)打印出来。

if a in birthdays:
    print(birthdays[a])

编辑:

如Avihoo Mamka所建议的那样,甚至更简单。

birthdays.get(a, 'No birthday found for this date')

答案 1 :(得分:1)

您可以在字典上使用.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!

请注意,您当前的方法存在两个问题

  1. 您将生日保存为1-December,但日期字符串的格式为01-December strftime逻辑
  2. 可能有多个男孩在同一日期有bithday,当前字典无法存储。使用列表而不是字符串将名称保存在字典中,例如:birthdays = {'09-December': ['ALICE', 'BOB'], '20-May': ['MORRIS']}