Python!Are you kidding me?
阿新 • • 發佈:2017-06-15
get 編譯器 adl 多次 -a readlines 錯誤 真的 工作
商品分類是不會出現#(所以我保存時候用了#作為分隔符),而商品總是從1到商品數n編號,我得到這個商品數之後。就能夠遍歷調用操作函數(簡單記為fun吧)。 之後我就安心地交給後臺操作了
之後我就在寫其它了,由於處理的是海量數據。所以我等了一個下午再回去看的時候。發現程序還沒有結束。不再我估計的範圍內。
end還是非常正常阿!
死循環了。。
前幾天由於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
這下就煩惱了,是我的程序問題嗎。還是真的沒執行完?
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?