pythonchallenge第二关

      还是挺喜欢python的,所以呢,又开始写PYTHON CHALLENGE了,毕竟写了很久的C语言,PYTHON的很多特性都不习惯,有心练一下吧,查了下,zoj支持python,可是单是输入数据就有得处理了……

      为了把PYTHON写好,还是要加油啊。

      题目页面:http://www.pythonchallenge.com/pc/def/ocr.html

      今天在打开时,还出了点小问题,只好用GOAGENT翻墙了,等这么多,多不好。

      过去也做过这题了,只是当时把find rare characters in the mess below:这句话后面的那大堆文本复制下来,花了太多时间,应该CTRL + A的……以前怎么写的,有点忘了。

起初,不打算复制,最好是直接用网络的库函数,把源代码直接搞下来,所以:

import urllib2
>>> print urllib2.urlopen("http://www.baidu.com").read()
结果呢,baidu.com是成功抓取了,于是我再接再厉。

print urllib2.urlopen("http://www.pythonchallenge.com/pc/def/ocr.html").read()
半分钟后,我承认,死了……就是不知道是没翻墙呢?还是什么原因……反正,我伤心了。哭

那只能自己动手,丰衣足食,从浏览器上把代码COPY到文件上,然后,开始了:

__name__ == '__main__':

     outfile = open("F:\\ocr.htm", "r")
     text = outfile.read()
     
     flag = 'find rare characters in the mess below:'
     start = text.find(flag) + len(flag)
     end   = text.find('-->', start + len('-->'))
     
     objectText = text[start : end]
     for letter in objectText:
         if (letter >= 'a' and letter <= 'z') or (letter >= 'A' and letter <= 'Z'):
             print letter
结果自然是正确的(代码不合理,因为,没有养成关文件流的习惯,还有,可以直接使用isalpha……),不过,想想也知道,这种做法再平常不过,自己还是深受C语言的影响,最装逼的做法当然是用正则表达式,何况,自己对正则表达式七窍通了六窍——一窍不通呢?

自己写是写不出来的了……就网上找到的代码:http://blog.sina.com.cn/s/blog_5e74b40e0100l7ty.html


import re
f = file("ocr.htm",“r”)
s = f.read()
check = re.compile([a-z])     # NameError: name 'a' is not defined
check1 = check.findall(s)
print check1f.close()

在论坛里,还有像:

import string
>>> filter(lambda x: x in string.letters, text)

方法太多了!






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值