您的位置:首页 > 编程语言 > Python开发

我大学剩下一年半的生活(十六)——pythonchallenge之level15

2012-03-12 21:02 453 查看
python challenge level 15 url: http://www.pythonchallenge.com/pc/return/uzi.html。
这一题从页面上并不能得到太多的信息,只能从title和被圈出的日期推测被圈出来的这一天肯定有特殊意义,同时我们要通过这一天来猜测这个人是谁。既然表面没有什么过多的信息,那么就只有深入观察了。打开页面源代码可以看到两条注释,第一条可以知道,这个人是一个男的,因为注释说的是he,并且告诉我们他是家中第二小的孩子。第二条信息则要说要为明天买花,既然涉及到买花,那么明天肯定是某个节日或者生日或者葬礼之类的,其中是所要猜测的人的生日的可能性最大,所以需要对前面的信息做一些修改,并不是1月26日有特殊意义,而是1月27日。看到这一题信息如此明显我就没有再继续做下去了,直接在网上查找的答案。

在查找完答案之后,我觉得虽然我对欧美的名人什么的不是特别了解,但是只要对欧美了解一点这题还是很简单的,但是这样的话就和python没甚么关系了,所以我看了看官方答案。答案中使用了一些关于时间的模块来缩小时间的范围,从而通过进一步的推断得出最后的答案。这些模块我以前也一直没有用过,所以决定看一看怎么用,然后把代码写出来。有一点要提出来,答案说这一年是闰年,好吧,仔细看的话确实可以从右下角看出2月份是29天,所以是闰年。但是我想说,能不能把图片搞清楚一点,真的很难看出来啊。。。

#! /usr/bin/env python
'''question url: http://www.pythonchallenge.com/pc/return/uzi.html answer url: http://www.pythonchallenge.com/pcc/return/mozart.html '''

# second youngest
# 1**6.1.27. it might be a birthday, beacuse we should buy flower for that day.
from calendar import isleap
from datetime import date
TUESDAY = 1
for year in range(1006, 2000, 10):
    t = date(year, 1, 27)
    if isleap(year) and t.weekday() == TUESDAY:
        print t.isoformat()

最后的输出是:



得出这些年份之后答案就说很显然是mozat,对于我这种不是很了解外国历史的人来说是该囧一下呢?还是囧一下呢?还是囧一下呢?后来在wikipedia上查了一下January 27的相关事件。在输出的时间中,只有1976年1月27号有6个人出生,1756年1月7日mozart出生。虽然没有明说,但是有三点可以确定是mozart。首先,这个人应该是一个比较古老的人,而且世界闻名,其次,他应该是欧美地区的人,最后,根据一条没有使用的信息——他在家里是第二小,选择mozart还是比较合理的。所以下一题的链接为:http://www.pythonchallenge.com/pc/return/mozart.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: