鱼C论坛

 找回密码
 立即注册
查看: 2420|回复: 6

[已解决]for whlie进入重复运算的死循环,请问怎么处理

[复制链接]
发表于 2023-2-7 16:40:26 | 显示全部楼层 |阅读模式

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

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

x
        for i in range(200,(len(nihao)-500)):
            while 条件1:
                jia = jia + nihao['数量'][i]
                if 条件2:
                    jia = jia + nihao['数量'][i + 1]
                i+=1
            i+=1

假设初始的 i 的数字是200,当进入条件1后,i 的数一直在+1,但跳出whlie循环后,假设这时的 i 已经是350 。但再次进入for循环,i 不是从351开始算,而是从初始值+1,也就是201开始算。这局如何破?麻烦大神解答下。
请问如何处理?
最佳答案
2023-2-7 16:58:42
本帖最后由 歌者文明清理员 于 2023-2-7 17:02 编辑

  1. i=0
  2. while i < len(nihao) - 500: #while需要手动+1,此时可以加很多1
  3.             while 条件1:
  4.                 jia = jia + nihao['数量'][i]
  5.                 if 条件2:
  6.                     jia = jia + nihao['数量'][i + 1]
  7.                 i+=1
  8. # 根据逻辑第二个i+=1这一行要删掉,因为while条件1结束后会多一个+1
  9. # 如果这一行删掉之后结果出错,你再发个帖把源代码和目标都写上
复制代码

同意@isdkz 说的,这种要用while循环,别for,
for只会便利原列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-7 16:45:29 | 显示全部楼层
这种就不要用 for 循环了,用 while 循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-2-7 16:46:31 | 显示全部楼层
补充下 nihao是个dataframe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 16:48:24 | 显示全部楼层
isdkz 发表于 2023-2-7 16:45
这种就不要用 for 循环了,用 while 循环

遍历nihao的dataframe,中间会显出很多次条件1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 16:58:42 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-2-7 17:02 编辑

  1. i=0
  2. while i < len(nihao) - 500: #while需要手动+1,此时可以加很多1
  3.             while 条件1:
  4.                 jia = jia + nihao['数量'][i]
  5.                 if 条件2:
  6.                     jia = jia + nihao['数量'][i + 1]
  7.                 i+=1
  8. # 根据逻辑第二个i+=1这一行要删掉,因为while条件1结束后会多一个+1
  9. # 如果这一行删掉之后结果出错,你再发个帖把源代码和目标都写上
复制代码

同意@isdkz 说的,这种要用while循环,别for,
for只会便利原列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 17:00:12 | 显示全部楼层
skyhouse 发表于 2023-2-7 16:48
遍历nihao的dataframe,中间会显出很多次条件1

虽然不知道你为什么要这样写代码,但是你的想法不就是这样吗?

        i = 200
        while True:
            while 条件1:
                jia = jia + nihao['数量']
                if 条件2:
                    jia = jia + nihao['数量'][i + 1]
                i+=1
            i+=1
            if i >= len(nihao)-500:
                break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 17:50:29 | 显示全部楼层
isdkz 发表于 2023-2-7 17:00
虽然不知道你为什么要这样写代码,但是你的想法不就是这样吗?

        i = 200

谢谢大佬,思路是您说的那种,但是写不出来。。。只能来求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 02:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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