You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何用for循环替代while循环反复获取用户输入的合法整数

Python 使用for循环实现序列求和需求

修改说明

原有代码的两处while循环都可以替换为for循环实现,同时优化了冗余的分支判断逻辑,保留所有原有功能:

  • 输入校验环节:使用Python无限for循环实现,直到用户输入非负整数才终止,和原有while逻辑完全一致
  • 序列计算环节:经推导该序列的循环执行次数刚好等于输入的n值,直接使用固定次数的for循环即可,无需额外终止条件判断,同时删除冗余的lastTerm变量和分支判断代码
  • 优化了变量命名:将原代码中和内置函数重名的sum改为total,避免命名冲突

完整实现代码

# 要求使用for-loop实现,结果保留2位小数
# 程序接收用户输入的非负整数n,计算对应序列的和

# 输入校验for循环:无限循环直到拿到合法输入
for _ in iter(int, 1):
    n = int(input("请输入要计算的数值: "))
    if n >= 0:
        break

total = 0
# 序列计算for循环:遍历k从0到n-1
for k in range(n):
    total += (n - k) / (k + 1)

# 保留2位小数输出
print("{:.2f}".format(total))

逻辑验证

  • 当n=0时,range(0)为空,循环不执行,total为0,输出0.00,符合预期
  • 当n=1时,循环执行1次,计算得1,输出1.00,符合预期
  • 当n为其他正整数时,循环执行n次,累加所有项的结果和原有代码完全一致

内容的提问来源于stack exchange,提问作者JohnDoe8920

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 10:27:00