前几天由于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=1
while beg<=end:
fun(beg)
beg+=1

之后我就安心地交给后台操作了

nohup python a.py &

之后我就在写其它了,由于处理的是海量数据。所以我等了一个下午再回去看的时候。发现程序还没有结束。不再我估计的范围内。

聪明的你,看出什么问题了吗?

后来我增加了一句非常easy的话。

f=open('record.txt','r')
info=f.readlines()[0]
f.close()
end=info.split('#')[-1]
beg=1
while 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=1
while beg<=end:
print beg
fun(beg)
beg+=1

end还是非常正常阿!

这下就烦恼了,是我的程序问题吗。还是真的没执行完?

Then,我去了个洗手间。

细致一想,好像split后得到的是字符串。!

字符串!

可是,字符串不是会转换成数字吗?那究竟也不至于没跑完阿,比方'18'(我如果而已,实际大多了。

)

数字与字符串的比較呢?

后来我写了一个測试函数

beg=1
while beg<'1':
print beg
beg+=1

死循环了。。

我带着一腔愤慨与兴奋,改动了程序

f=open('record.txt','r')
info=f.readlines()[0]
f.close()
end=int(info.split('#')[-1])
beg=1
while beg<=end:
fun(beg)
beg+=1

程序总算是正常了。

好吧。被py玩了一个下午。

后来。我发现,用xrange会直接报错,下次还是用xrange吧。

Python!Are you kidding me?的更多相关文章

  1. Python基础:条件判断与循环的两个要点

    一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5 #test if...elif age = 20 if ag ...

  2. Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件

    学了一阵子Python,拿来做个什么有意思的东西呢?爬糗百好了.爬到的内容,邮件分发出去. 然后又啃了两天的wxpython,做了个简易的邮件管理界面,能够在这里添加或者删除邮件,而且一键爬虫发送. ...

  3. Python踩坑系列之安装pycrypto报错:“Microsoft Visual C++14.0 is required”问题。

    由于要使用Python3实现des3加密要使用pycrypto模块,所以使用pip install pycrypto 来安装,然后就常规性掉坑.安装报错“Microsoft Visual C++14. ...

  4. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  5. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  7. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  8. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  9. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

随机推荐

  1. hdoj--5563--Clarke and five-pointed star(简单几何)

    Clarke and five-pointed star Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  2. Minikube之Win10单机部署Kubernetes(k8s)自动化容器操作的开源平台

    Minikube之Win10单机部署 Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作.如果你曾经用过Docker部署容器,那么可以 ...

  3. 虚拟机下安装mysql

    虚拟机下CentOS6.8下安装MYSQL5.6 方法: 整理修改于 http://www.cnblogs.com/liuyi2614/p/6382183.html 开始时: 普通用户是$ root用 ...

  4. 存储过程的调用和Parameters数组的调用

    记录一些杂记吧 declare @d datetime set @d=GETDATE() select * from [ACC_B2B].[dbo].ORDER_Head --where 1=1 se ...

  5. python实现决策树C4.5算法(在ID3基础上改进)

    一.概论 C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点.而C4.5引入了新概念"信息增益率",C4.5是选择信息增益率最大的属性作 ...

  6. JDOJ 2939: Suffix Automaton 广义后缀自动机_统计子串

    建立广义后缀自动机,对每个节点都建立各自的 $Parent$ 数组. 这样方便统计,不会出现统计错误. 考虑新加入一个字符. 1 这条转移边已经存在,显然对答案没有贡献. 2 这条转移边不存在,贡献即 ...

  7. 洛谷P3332 [ZJOI2013]K大数查询 权值线段树套区间线段树_标记永久化

    Code: #include <cstdio> #include <algorithm> #include <string> #include <cstrin ...

  8. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

    原文:NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统 前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的 ...

  9. Java基础学习总结(14)——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

  10. ArcGIS api for javascript——显示一个信息窗口

    描述 这个示例展示了在用户单击地图时如何在InfoWindow中显示信息.信息窗口是一个dijit (Dojo widget).信息窗口能够包含文本,字符,图片和任何通过HTML表示的事物.这个例子在 ...