鱼C论坛

 找回密码
 立即注册
查看: 771|回复: 14

[已解决]29讲,python是多用几次循环就会卡顿吗?也只用了三次循环,就不出结果了

[复制链接]
发表于 2020-3-26 15:30:13 | 显示全部楼层 |阅读模式

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

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

x
#小甲鱼的对话单独保存为boy_*.txt,去掉”小甲鱼:“
#小客服的对话单独保存为girl_*.txt,去掉”小客服:“
#文件中一共有三段对话,分别保存为boy_1.txt,boy_2.txt,boy_3.txt
#以及girl_1.txt,girl_2.txt,girl_3.txt共6个文件
f=open(r"C:\Users\Administrator\Desktop\python\record.txt","r")
f.seek(0,0)                                          #从文件头开始
string=f.read()                                      #讲txt里面的东西赋值给字符串string

def variation(range_1,count):
     i=0
     sign=[0]  
     while string[i]!= '=':
        for i in range(range_1,len(string)):
            if string[i]=='\n' and  "小客服:" in string[max(sign):i]:
               boy='boy_'+str(count)+'.txt'
               boy_file=open(boy,'w+')               #+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中               
               boy_file.write(string[max(sign)+4:i]) #max(sign)找最大值,越往后的换行符的位置参数越大,就是离当前换行符最近的那一个换行符的位置
               i+=1                                  #跳过第二个换行符,开始新一轮判别,原因如下
               sign.append(i)                        #存放换行符的位置,换行符是有每个句子结尾和句子开头都有一个换行符,例如‘女朋友?\n\n小甲鱼:咦???\n\n小客服:我跟:’
            else:                                       
               if string[i]=='\n' and  "小甲鱼:" in string[max(sign):i] :
                   girl='girl'+str(count)+'.txt'
                   girl_file=open(girl,'w+')
                   girl_file.write(string[max(sign)+4:i])
                   i+=1
                   sign.append(i)
     print('location=',i)                            #输出当前出现‘=’的位置
                                                                              
variation(0,1)                              
location_1=location                                  #存放第一次出现‘=’的位置
if string[location_1]=='=':                          #循环跳过所有的‘=’符号之后,在开始存放数据
   location_1+=1
else:
    variation(location_1,2)
    location_2=location                              #存放第2次出现‘=’的位置
    if string[location_2]=='=':                      #循环跳过所有的‘=’符号之后,在开始存放数据
         location_2+=1           
    else:
       variation(location_2,3)         
                                      
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-26 16:09:02 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-26 16:11:56 | 显示全部楼层
你发的帖子也不少了
咋还是不会发代码呢?
发贴的界面,在上方工具栏有个‘<>’按钮是发代码用的。
你总是把代码直接贴过来,别人赋值粘贴也麻烦,还可能会遇到缩进问题
真出现这种为问题,也就不知道是你的程序问题还是别人复制粘贴的时候出的问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:16:00 | 显示全部楼层
sunrise085 发表于 2020-3-26 16:11
你发的帖子也不少了
咋还是不会发代码呢?
发贴的界面,在上方工具栏有个‘’按钮是发代码用的。

啊,抱歉,我每次在第一次提问的时候,点<>,没有反应,只有在回复别人的时候,点那个东西才会有反应
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:17:01 | 显示全部楼层
猪猪虾 发表于 2020-3-26 16:16
啊,抱歉,我每次在第一次提问的时候,点,没有反应,只有在回复别人的时候,点那个东西才会有反应
  1. #小甲鱼的对话单独保存为boy_*.txt,去掉”小甲鱼:“
  2. #小客服的对话单独保存为girl_*.txt,去掉”小客服:“
  3. #文件中一共有三段对话,分别保存为boy_1.txt,boy_2.txt,boy_3.txt
  4. #以及girl_1.txt,girl_2.txt,girl_3.txt共6个文件
  5. f=open(r"C:\Users\Administrator\Desktop\python\record.txt","r")
  6. f.seek(0,0)                                          #从文件头开始
  7. string=f.read()                                      #讲txt里面的东西赋值给字符串string

  8. def variation(range_1,count):
  9.      i=0
  10.      sign=[0]  
  11.      while string[i]!= '=':
  12.         for i in range(range_1,len(string)):
  13.             if string[i]=='\n' and  "小客服:" in string[max(sign):i]:
  14.                boy='boy_'+str(count)+'.txt'
  15.                boy_file=open(boy,'w+')               #+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中               
  16.                boy_file.write(string[max(sign)+4:i]) #max(sign)找最大值,越往后的换行符的位置参数越大,就是离当前换行符最近的那一个换行符的位置
  17.                i+=1                                  #跳过第二个换行符,开始新一轮判别,原因如下
  18.                sign.append(i)                        #存放换行符的位置,换行符是有每个句子结尾和句子开头都有一个换行符,例如‘女朋友?\n\n小甲鱼:咦???\n\n小客服:我跟:’
  19.             else:                                       
  20.                if string[i]=='\n' and  "小甲鱼:" in string[max(sign):i] :
  21.                    girl='girl'+str(count)+'.txt'
  22.                    girl_file=open(girl,'w+')
  23.                    girl_file.write(string[max(sign)+4:i])
  24.                    i+=1
  25.                    sign.append(i)
  26.      print('location=',i)                            #输出当前出现‘=’的位置
  27.                                                                               
  28. variation(0,1)                              
  29. location_1=location                                  #存放第一次出现‘=’的位置
  30. if string[location_1]=='=':                          #循环跳过所有的‘=’符号之后,在开始存放数据
  31.    location_1+=1
  32. else:
  33.     variation(location_1,2)
  34.     location_2=location                              #存放第2次出现‘=’的位置
  35.     if string[location_2]=='=':                      #循环跳过所有的‘=’符号之后,在开始存放数据
  36.          location_2+=1           
  37.     else:
  38.        variation(location_2,3)         
  39.                                       
  40. f.close()
  41. boy_1.close()
  42. boy_2.close()
  43. boy_3.close()
  44. girl_1.close()
  45. girl_2.close()
  46. girl_3.close()

  47. #我以后发两遍,在回复里面再发一遍
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:19:00 | 显示全部楼层
  1. #小甲鱼的对话单独保存为boy_*.txt,去掉”小甲鱼:“
  2. #小客服的对话单独保存为girl_*.txt,去掉”小客服:“
  3. #文件中一共有三段对话,分别保存为boy_1.txt,boy_2.txt,boy_3.txt
  4. #以及girl_1.txt,girl_2.txt,girl_3.txt共6个文件
  5. f=open(r"C:\Users\Administrator\Desktop\python\record.txt","r")
  6. f.seek(0,0)                                          #从文件头开始
  7. string=f.read()                                      #讲txt里面的东西赋值给字符串string

  8. def variation(range_1,count):
  9.      i=0
  10.      sign=[0]  
  11.      while string[i]!= '=':
  12.         for i in range(range_1,len(string)):
  13.             if string[i]=='\n' and  "小客服:" in string[max(sign):i]:
  14.                boy='boy_'+str(count)+'.txt'
  15.                boy_file=open(boy,'w+')               #+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中               
  16.                boy_file.write(string[max(sign)+4:i]) #max(sign)找最大值,越往后的换行符的位置参数越大,就是离当前换行符最近的那一个换行符的位置
  17.                i+=1                                  #跳过第二个换行符,开始新一轮判别,原因如下
  18.                sign.append(i)                        #存放换行符的位置,换行符是有每个句子结尾和句子开头都有一个换行符,例如‘女朋友?\n\n小甲鱼:咦???\n\n小客服:我跟:’
  19.             else:                                       
  20.                if string[i]=='\n' and  "小甲鱼:" in string[max(sign):i] :
  21.                    girl='girl'+str(count)+'.txt'
  22.                    girl_file=open(girl,'w+')
  23.                    girl_file.write(string[max(sign)+4:i])
  24.                    i+=1
  25.                    sign.append(i)
  26.      print('location=',i)                            #输出当前出现‘=’的位置
  27.                                                                               
  28. variation(0,1)                              
  29. location_1=location                                  #存放第一次出现‘=’的位置
  30. if string[location_1]=='=':                          #循环跳过所有的‘=’符号之后,在开始存放数据
  31.    location_1+=1
  32. else:
  33.     variation(location_1,2)
  34.     location_2=location                              #存放第2次出现‘=’的位置
  35.     if string[location_2]=='=':                      #循环跳过所有的‘=’符号之后,在开始存放数据
  36.          location_2+=1           
  37.     else:
  38.        variation(location_2,3)         
  39.                                       
  40. f.close()
  41. boy_1.close()
  42. boy_2.close()
  43. boy_3.close()
  44. girl_1.close()
  45. girl_2.close()
  46. girl_3.close()

  47. #和上方代码一样
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:27:40 | 显示全部楼层

这个是用到的record.txt内容

sunrise085 发表于 2020-3-26 16:11
你发的帖子也不少了
咋还是不会发代码呢?
发贴的界面,在上方工具栏有个‘’按钮是发代码用的。

  1. 小客服:小甲鱼?,今天有?客户问你有没有女朋友?

  2. 小甲鱼:咦???

  3. 小客服:我跟她说你有女朋友了!

  4. 小甲鱼:。。。。。

  5. 小客服:"她让你分手后考虑下她!然后我说您要买个优盘,我就帮您留意下~"

  6. 小甲鱼:然后呢?

  7. 小客服:她买了两个,说发一一个货就好~

  8. 小甲鱼:呃。?。。。。。你真牛!

  9. 小客服:那是,谁让我是鱼C最可爱小客服嘛~

  10. 小甲鱼:下次有人想调戏你我不阻止~

  11. 小客服:滚!!!

  12. ==========================================================

  13. 小客服:小甲鱼,有个好评很好笑哈。
  14. 小甲鱼:哦?

  15. 小客服:"有了小甲鱼,以后妈妈再也不用担心我的学习了~”

  16. 小甲鱼:哈哈哈,我看到丫,我还发微博了呢~

  17. 小客服:嗯嗯,我看了你的微博丫~小甲鱼哟西~

  18. 小客服:那个有条回复"左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,?soeasy^...^"

  19. 小甲鱼:T_T

  20. ==========================================================
  21. 小甲鱼:哦?什么事?

  22. 小客服:他说你一个学生月薪已经超过12k了!?!

  23. 小甲鱼:哪里的?

  24. 小客服:上海的

  25. 小甲鱼:那正常,哪家公司?

  26. 小客服:他没说呀。

  27. 小甲鱼:哦

  28. 小客服:老大,为什么我工资那么低啊???是时候涨张工资了!!!

  29. 小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。

  30. 小客服:滚!!!
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 16:41:18 | 显示全部楼层
猪猪虾 发表于 2020-3-26 16:16
啊,抱歉,我每次在第一次提问的时候,点,没有反应,只有在回复别人的时候,点那个东西才会有反应

难道自己不会手打
[code][/code]
吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:47:51 | 显示全部楼层

学到了,谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 16:52:09 | 显示全部楼层

是这么用的吗
[code][自己的代码/code]?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 16:57:45 | 显示全部楼层


  1. 代码
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 16:58:52 | 显示全部楼层
猪猪虾 发表于 2020-3-26 16:52
是这么用的吗
[code][自己的代码/code]?

是两个中括号中间加代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 17:01:31 | 显示全部楼层
本帖最后由 猪猪虾 于 2020-3-26 17:03 编辑
  1. 代码
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 17:02:52 | 显示全部楼层    本楼为最佳答案   

学会了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 17:04:00 | 显示全部楼层

好的,谢谢,我把帖子再发一遍,帮我看看代码呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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