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

如何编写校验天数范围2-40的双数值数据验证循环及修复逻辑错误

问题原因

原代码校验失效核心有3个问题:

  • 循环判断逻辑运算符使用错误:原while条件写的是num_days < 2 and num_days > 40,不存在整数能同时小于2且大于40,这个条件永远为假,所以输入大于40的数值时根本不会进入校验重输的循环。
  • while循环下的重输代码没有正确缩进,不符合Python语法要求,运行会直接报缩进错误。
  • 错误提示信息不清晰,用户无法明确知道合法输入的范围。
修正方案

校验2~40闭区间的合法值时,非法输入的判定规则是:输入值小于2,或者输入值大于40,两个条件满足任意一个就需要提示用户重新输入,因此要把条件里的and换成or,同时补全循环体缩进,优化提示信息。

修正后可运行代码
dayPennies = 1
num_days = 0
total = 0.0

num_days = int(input('请输入天数:'))
# 命中非法值则持续要求重输
while num_days < 2 or num_days > 40: 
    num_days = int(input("输入无效,请输入2到40之间的天数:"))  

print('日期  \t 当日赚取薪资(美元)')
print('_______________________________')

for day in range(1, num_days + 1):
    print(day, '\t$', float(dayPennies / 100))
    total += dayPennies
    dayPennies *= 2

print(num_days, '天总薪资为:$', float(total/100))
效果验证
  • 输入1、0等小于2的数值:触发重输提示
  • 输入41、100等大于40的数值:触发重输提示
  • 输入2、40、20等区间内的数值:正常进入薪资计算逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:30:46