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

如何让Python for循环拒绝负整数?实现正整数输入校验

解决方案

你的原代码存在两个明显问题:一是使用eval()有安全风险(它会执行任意输入的代码),二是缺少输入校验逻辑。下面是修改后的代码,能确保循环只接受正整数输入:

current = []
print("Enter 6 integers greater than 0")
for i in range(6):
    while True:
        try:
            num = int(input(f"Enter positive integer {i+1}/6: "))
            if num > 0:
                current.append(num)
                break
            else:
                print("Error: Please enter a number greater than 0.")
        except ValueError:
            print("Error: Please enter a valid integer.")

关键修改说明

  • 替换eval()为int():直接将输入转换为整数,避免执行恶意代码的安全风险,同时能捕获非整数输入的错误。
  • 新增while True循环:针对每个输入位置,持续提示用户直到输入符合正整数要求。
  • 双重校验逻辑:
    • 通过try-except捕获非整数输入,给出明确提示后重新请求输入。
    • 判断输入的整数是否大于0,不符合要求时提示用户并重新输入。
  • 优化交互提示:明确告知用户当前是第几个输入,提升操作清晰度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:10:28