博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码14
阅读量:6937 次
发布时间:2019-06-27

本文共 1716 字,大约阅读时间需要 5 分钟。

需要计算每个intend下有多少个query,即计算Q开头的

intend之间有空行

不仅有I,Q,R,有些还有P

这是最后一个intend的样子

错误代码:

f = open('/home/xbwang/Desktop/cs_update','r')intend = 0for line in f:    if(line[0] == 'I'):        intend = intend+1f1 = open('/home/xbwang/Desktop/cs_update','r')line1 = f1.readline()count = [0]*30for i in range(intend):    while line1:        line1 = f1.readline()if(line1[0] == 'Q'):            count[i] = count[i]+1        elif(line1[0] == 'I'):            break        else:            continueprint count

报的错误:

正确代码:

f = open('/home/xbwang/Desktop/cs_update','r')intend = 0for line in f:    if(line[0] == 'I'):        intend = intend+1f1 = open('/home/xbwang/Desktop/cs_update','r')line1 = f1.readline()count = [0]*30for i in range(intend):    while line1:        line1 = f1.readline()        if(len(line1) == 0):            break        else:            if(line1[0] == 'Q'):                count[i] = count[i]+1            elif(line1[0] == 'I'):                break            else:                continueprint count

 

错误原因分析:当line1为最后一个空白时,while循环继续执行,这个时候再调用readline函数读下一行就是空了,这个时候调用line1[0]当然是数组越界,因为line1这时候为空。

 

另一个值得注意的错误:

错误代码:

f = open('/home/xbwang/Desktop/cs_update','r')intend = 0for line in f:    if(line[0] == 'I'):        intend = intend+1line1 = f.readline()print line1count = [0]*30#for i in range(intend):    #while line1:            #line1 = f1.readline()            #if(line1[0] == 'Q'):                #count[i] = count[i]+1            #elif(line1[0] == 'I'):                #break            #else:                #continue#print count

错误:

可以看到这里的输出是一个空行

 

错误原因分析:

line1 = f.readline()这一行出现了错误,因为之前已经有了“for line in f:”这一行,即已经把整个文件读完,所以用line1 = f.readline()再读就是空了。这和readline函数一样,每读一次,少一行。避免此错误的方法就是再open这个文件进行读。

转载地址:http://xqljl.baihongyu.com/

你可能感兴趣的文章
powershell实现离线ip扫描
查看>>
Fragment使用findFragmentById返回null
查看>>
Logger日志级别说明及设置方法、说明
查看>>
SPOJ PGCD(莫比乌斯反演)
查看>>
oracle常用命令入门
查看>>
关于MFC程序快捷键失效的问题
查看>>
bzoj 1965 数学
查看>>
链接静态库的顺序问题
查看>>
for(;;){}循环语句
查看>>
利用edtftpj组件实现FTP文件的上传。
查看>>
csuoj1009
查看>>
为app添加动态gif背景
查看>>
括号配对问题1
查看>>
Xamarin开发Android笔记:TextView行间距设定
查看>>
div间的小红点,可能是BOM头,利用ultraedit另存为UTF-8无BOM即可
查看>>
如何利用altera 给出的megafunction配置成自己想要的FIFO和RAM ——本文为转载
查看>>
熟悉常用的Linux操作
查看>>
如何用java实现数据脱敏
查看>>
html5 本地存储有多少种方案:
查看>>
Access-Control-Max-Age是什么?
查看>>