如何用Python的while循环完成严格小于输入数的正偶数求和作业?
Python作业问题修复:计算严格小于输入数的正偶数之和
你的代码存在几个关键问题:
- 输入验证的
while循环逻辑错误:当前写法只会在输入合法时执行一次循环体,无法处理非法输入的重新输入需求 range(3<n<50)是无效写法:这个表达式会先判断3<n<50得到布尔值(True/False),转成整数就是1/0,range只会生成空序列或[0],完全不符合遍历偶数的需求- 求和逻辑错误:
k = n + e不是累加操作,而且没有限定e是严格小于n的正偶数
正确实现步骤
- 输入合法性校验:用
while循环持续获取输入,直到用户输入的数在[3,50]区间内 - 用while循环计算偶数和:初始化一个累加变量,从第一个正偶数2开始,每次加2,直到当前偶数严格小于输入的n,逐步累加
修复后的代码
# 获取合法输入 n = int(input("请输入3到50之间的正整数:")) while not (3 <= n <= 50): print("输入不合法,请重新输入") n = int(input("请输入3到50之间的正整数:")) # 用while循环计算严格小于n的正偶数之和 sum_evens = 0 current_even = 2 # 第一个正偶数 while current_even < n: sum_evens += current_even current_even += 2 # 跳到下一个偶数 print(f"所有严格小于{n}的正偶数之和为:{sum_evens}")
代码解释
- 输入校验部分:
while not (3 <= n <=50)会在输入不合法时持续提示用户重新输入,确保n符合区间要求 - 求和部分:
current_even从2开始,每次循环判断是否小于n,是的话就加到总和里,然后current_even +=2获取下一个偶数,直到current_even >=n时退出循环,完美实现“严格小于输入数”的逻辑
内容的提问来源于stack exchange,提问作者Moksggwp
相关产品推荐
相关产品推荐

