Python如何使用while循环输出含初始值且无超阈值元素的数值列表
问题调整方案
你当前的代码存在两个逻辑问题:一是先更新i的取值再加入列表,导致初始值0.1没有被收录;二是循环判断的是更新前的i是否小于阈值,更新后超出阈值的数值依然会被加入列表,所以出现了超过0.5的元素。
修改后的代码如下:
import math x1 = 0.1 x2 = 0.5 d = 0.2 theta = 1.14840969035 step = d * math.cos(theta) x_list = [] i = x1 while i < x2: x_list.append(i) i += step print(x_list)
运行后输出结果为:
[0.1, 0.181987700205, 0.263975400411, 0.345963100616, 0.427950800822]
改动说明
- 调整了循环内的操作顺序:先将当前满足
i < 0.5条件的i值加入列表,再更新i的取值,这样初始值0.1会被首先加入列表,不会遗漏 - 循环仅在i符合阈值要求时才会执行加入操作,更新后超出阈值的数值不会进入下一轮循环,自动剔除了超过0.5的异常元素
内容的提问来源于stack exchange,提问作者Justin Delmo
相关产品推荐
相关产品推荐

