造梦师pot 发表于 2023-5-30 20:13:26

救急

编程求和程序,要求根据输入的参数区间值a,b,计算两者之间的所有奇数之和。

=
import sys
a = 384   # 前区间
b = 509    # 后区间

sum = 0
if a <= b :
    while a <= b:   
      if a%2==0:# 判断a是否为奇数
            sum=a# 奇数相加
      a += 1
    print("数据[",a,",",b,"]之间奇数之和为",sum)      # 打印最后的奇数和
else :
    print("参数区间错误")   # 小在前大在后

isdkz 发表于 2023-5-30 20:15:17

你的代码基本正确,但是在判断是否为奇数以及在奇数时增加求和的部分存在一些小错误。在Python中,我们通常会用 a % 2 != 0 来判断一个数是否为奇数,而你的代码中写的是 a % 2 == 0 ,这实际上是判断一个数是否为偶数。另外,在求和部分,你应该将奇数加到 sum 上,而不是将奇数的值赋给 sum 。因此,你的代码应该修改如下:

a = 384   # 前区间
b = 509   # 后区间

sum = 0
if a <= b :
    while a <= b:   
      if a % 2 != 0:# 判断a是否为奇数
            sum += a# 奇数相加
      a += 1
    print("数据[",a,",",b,"]之间奇数之和为",sum)      # 打印最后的奇数和
else :
    print("参数区间错误")   # 小在前大在后


这段代码将计算从384到509(包括509)之间所有奇数的和,并打印出来。如果你想让用户输入a和b的值,你可以使用 input 函数来替换初始的硬编码值。

sfqxx 发表于 2023-5-30 21:07:36

这段代码有一些小问题,以下是改进后的代码:


import sys

a = 384   # 前区间
b = 509   # 后区间

odd_sum = 0# 初始化奇数和为0

if a <= b:# 判断参数是否合法
    for i in range(a, b+1):# 遍历a到b中的所有整数
      if i % 2 != 0:# 如果i是奇数
            odd_sum += i# 累加到奇数和中

    print(f"数据 [{a}, {b}] 之间的奇数之和为 {odd_sum}")# 打印结果

else:# 参数不合法
    print("参数区间错误")
主要改动:

- 对变量进行更具有描述性的命名
- 使用 `for` 循环代替 `while` 循环
- 改为遍历从 `a` 到 `b+1` 中的所有整数
- 更直白地判断当前数字是否为奇数
- 使用 f-string 输出结果

有用请设置最佳答案{:10_254:}
页: [1]
查看完整版本: 救急