鱼C论坛

 找回密码
 立即注册
查看: 2628|回复: 4

[已解决]代码问题

[复制链接]
发表于 2020-2-28 13:03:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
filepath=r"C:\Users\54563\Desktop\姓名排序.txt"
file=open(filepath,"rb")        #读取姓名排序.txt
savefilepath = r"C:\Users\54563\Desktop\姓名次数.txt"
savefile = open(savefilepath, "wb")     #打开姓名次数.txt准备写出
mylist=file.readlines()     #用mylist存储每一行数据
file.close()
length=len(mylist)

i=0
while i<length-1:
   times=1
   name=mylist[i]
   while i+1<=length-1 and mylist[i]==mylist[i+1]:    #判断mylist中的i元素和i+1元素,是否相等,相等的话times加1,i加1
      times+=1
      i+= 1
      print(name.decode("utf-8"),times)----1
   print(name.decode("utf-8"), times) -----2
savefile.close()
运行过程中,只有第一个print的时候,会正常统计,统计的只有姓名排序第一的人的n次出现;
如果只有第二个print,运行时候一直显示第一个姓名1(如“冯文 1),无法跳出循环;
两个都保留,运行时候还是一直显示第一个姓名1(如“冯文 1),无法跳出循环。
向大侠请教这是怎么回事
最佳答案
2020-2-28 13:17:13
当第二个while 不满足的时候,i就不会+1,所以第一个循环跳不出来。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 13:13:11 From FishC Mobile | 显示全部楼层
file=open(filepath,"r")

写文件也应 只有 w, 把b去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 13:17:13 | 显示全部楼层    本楼为最佳答案   
当第二个while 不满足的时候,i就不会+1,所以第一个循环跳不出来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 14:15:58 | 显示全部楼层
XiaoPaiShen 发表于 2020-2-28 13:13
file=open(filepath,"r")

写文件也应 只有 w, 把b去掉

把两个b都去了,readlines实现不了了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 14:19:04 | 显示全部楼层
ouyunfu 发表于 2020-2-28 13:17
当第二个while 不满足的时候,i就不会+1,所以第一个循环跳不出来。

问题解决了,感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-1 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表