嵌套循环变量重置问题:海浪高度分析循环结果异常求助
问题分析与解决代码
你的代码问题出在这几个地方:
- 只在循环外随机生成了一次x,第一次循环后x已经走到海浪高度低于1.75的位置,后续循环里while条件直接不触发,所以n一直是第一次的结果
- n没有在每次循环里重置为0,就算重新选x,也会累计之前的次数
range(1,100)只会执行99次,不是你要的100次
修正后的代码如下:
import random målinger = [] # 循环100次 for _ in range(100): # 每次循环都重新随机选初始x,重置n为0 x = random.randint(1, 2919) n = 0 # 用loc更规范,替代_get_value while df.loc[x, 'BØLGEHØYDE'] > 1.75: x += 1 n += 1 # 加边界判断,防止x超出数据集索引范围报错 if x > 2919: break målinger.append(n) print(målinger)
额外提醒:加上x > 2919的判断是为了防止如果从某个x开始,后续所有海浪高度都大于1.75,x会一直自增直到超出数据集索引范围,导致报错。
内容的提问来源于stack exchange,提问作者tuslemann
相关产品推荐
相关产品推荐

