Python!Are you kidding me?
来源:互联网 发布:夏普mx3138nc网络设置 编辑:程序博客网 时间:2024/06/14 10:38
前几天因为python给我带来了兴奋写了一篇文章叫做《The beauty of python 1》,今天则是因为一个小错误而写下此文。
也是缘由于我的工作,问题是这样的:
我有一个文档,里面存储了一行信息
商品分类#该分类的商品数
商品分类是不会出现#(所以我保存时候用了#作为分隔符),而商品总是从1到商品数n编号,我得到这个商品数之后,就可以遍历调用操作函数(简单记为fun吧)。
理所当然拉,我设置了分隔符,当然就是为了使用split。之后我写了几行这样的代码。
f=open('record.txt','r')info=f.readlines()[0]f.close()end=info.split('#')[-1]beg=1while beg<=end: fun(beg) beg+=1之后我就安心地交给后台操作了
nohup python a.py &
之后我就在写其他了,因为处理的是海量数据,所以我等了一个下午再回去看的时候,发现程序还没有结束,不再我预计的范围内。
聪明的你,看出什么问题了吗?
后来我加入了一句很简单的话。
f=open('record.txt','r')info=f.readlines()[0]f.close()end=info.split('#')[-1]beg=1while beg<=end: print beg#这句 fun(beg) beg+=1
但是,我的数据量很大,而且fun操作时间很慢!这就纠结了!这么简单的结果,竟然会出错?我毫不怀疑main函数内,而去看大段的fun,但是苦苦试验了很多次,还是不行阿。
当时,我差点怀疑是我的py坏了,还是在逗我!(作者心急如焚,竟然会怀疑自己的编译器!我的fun很恶心的一堆正则)
后来,我用肉眼来观察,难道是我的split出问题了吗?之后又加了一句。
f=open('record.txt','r')info=f.readlines()[0]f.close()end=info.split('#')[-1]print end #这句beg=1while beg<=end: print beg fun(beg) beg+=1end还是很正常阿!这下就烦恼了,是我的程序问题吗,还是真的没运行完?
Then,我去了个洗手间。
仔细一想,好像split后得到的是字符串!!字符串!
但是,字符串不是会转换成数字吗?那到底也不至于没跑完阿,比如'18'(我假设而已,实际大多了。)
数字与字符串的比较呢?
后来我写了一个测试函数
beg=1while beg<'1': print beg beg+=1
死循环了。。。
我带着一腔愤怒与兴奋,修改了程序
f=open('record.txt','r')info=f.readlines()[0]f.close()end=int(info.split('#')[-1])beg=1while beg<=end: fun(beg) beg+=1
程序总算是正常了。
好吧,被py玩了一个下午。
后来,我发现,用xrange会直接报错,下次还是用xrange吧。
2 0
- Python!Are you kidding me?
- Are you kidding?(Then we could look at the production line.)
- Why are you so special to me
- You are not working for me....................
- repo Please tell me who you are.
- UVALive - 4062 You are around me ...
- *** Please tell me who you are.
- Git *** Please tell me who you are.
- Git: “please tell me who you are”
- please tell me who you are?
- Please tell me who you are?
- UVa 10323 - Factorial! You Must be Kidding!!!
- Well, Signor Hugo, are you ready--are you willing to help me?"
- xcode 弹出 please tell me who you are
- UVA 12121 - You are around me ...(贪心+几何)
- uva 12121 - You are around me ...(贪心+几何)
- 新建工程出现 ***Please tell me who you are 解决办法
- git提示please tell me who you are
- Material Design(四)
- poj1163_The Triangle
- 使用mysqlbinlog工具进行基于位置或时间点的数据恢复
- android Installation error: INSTALL_FAILED_CONTAINER_ERROR
- 用宏实现 C++ Singleton 模式
- Python!Are you kidding me?
- POJ 2485 Highways
- Writing module .info files (Drupal 7.x)
- win7 64位下如何安装配置mysql-5.7.4-m14-winx64
- 为什么说MFC是垃圾
- hdu 2995 Robberies
- Android Studio 常用快捷键
- Android下ContentProvider 学习总结
- 柔性显示实现的关键技术