pythonchallenge level 4

链接:http://www.pythonchallenge.com/pc/def/linkedlist.html

这题主要学习urllib和re模块
import re
import urllib

urlpre = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
nothing = '12345'

f = open('4.txt', 'w')

for i in range(400):
    response = urllib.urlopen(urlpre + nothing)
    page = response.read()
    response.close()

    nothing = re.search(r'\d+',page)
    if nothing != None:
        nothing = nothing.group(0)
    else:
        nothing = page
        print nothing

运行的很慢,最后得到:
所以第五题的答案应该是http://www.pythonchallenge.com/pc/def/peak.html

第四题给出的官方答案地址http://wiki.pythonchallenge.com/index.php?title=Level4:Main_Page
一个比较简单的版本:
#!/usr/bin/env python

import re
import urllib

url="http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="
nothing = "12345"
search = re.compile(" (\d*)$")
search_html = re.compile("\.html$")

for i in xrange(300): 
    print "%s: " % nothing,

    line = urllib.urlopen( "%s%s" % (url,nothing) ).read()
    print line

    # handle the solution (last) line
    if search_html.findall (line):
        break
        
    match = search.findall (line)
    if match:
        # next nothing
        nothing = match [0]
    else:
        # handle the divide by two line
        nothing = str (int (nothing) / 2 )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值