如何简化这段Python循环代码?优化冗余变量与循环逻辑
代码优化方案
关于M变量的合理性
原代码中的M变量完全冗余——它的值始终是3,while M <=3的条件永远为真,实际循环终止是靠内部if k>3: break实现的,所以M完全可以移除,没有任何实际作用。
简化后的代码实现
方案1:用for循环替代while循环(最简洁)
直接遍历k从1到3的范围,不需要手动维护计数器和终止判断,符合Python的简洁风格:
s = 0 for k in range(1, 4): s += 1 / (2 * k) ** 2 print(k) print(s) print(s) # 对应原代码最后额外输出的s
运行结果和原代码完全一致:
1 0.25 2 0.3125 3 0.3402777777777778 0.3402777777777778
方案2:保留while循环但移除冗余逻辑
如果一定要用while循环,去掉无用的M,直接用k的范围控制循环,同时删除多余的break判断:
s = 0 k = 1 while k <= 3: s += 1 / (2 * k) ** 2 print(k) print(s) k += 1 print(s)
这个版本逻辑更清晰,行数更少,完全保留原代码的功能。
额外优化:合并输出(可选)
如果想进一步减少代码行数,可以把两次print合并(可读性略有下降):
s = 0 for k in range(1, 4): s += 1 / (2 * k) ** 2 print(k, s, sep='\n') print(s)
内容的提问来源于stack exchange,提问作者HappilyStupid
相关产品推荐
相关产品推荐

