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

如何实现随机数求和?并修正给定Python代码的奇偶求和逻辑问题

修正随机数奇偶求和代码

嘿,我帮你梳理下这段代码里的问题,然后给你一个能正常运行的版本:

原代码的几个问题

  • 模块导入位置不合理:import random放在for循环内部,每次循环都重复导入模块,完全没必要,既浪费资源也不符合代码规范,应该把导入语句放在代码最开头。
  • 变量名冲突踩坑:你用random作为存储随机数的变量名,直接覆盖了导入的random模块!第二次循环再调用random.randint()时,Python会误以为你要调用整数的randint方法,直接触发报错。
  • 求和逻辑未生效:even_numbers和odd_numbers没有初始化,而且每次赋值都是number_checker + random,但number_checker始终是0,最后输出的只是最后一个奇/偶数,根本不是所有对应数字的总和。
  • 存在无用变量:number_checker从头到尾没起到任何作用,直接删掉就行。

修正后的可运行代码

# 先导入random模块,只需要导入一次
import random

# 初始化奇偶总和变量,从0开始累加
even_total = 0
odd_total = 0

# 循环10次生成随机数
for _ in range(10):
    # 用不会和模块冲突的变量名存储随机数
    current_number = random.randint(1, 25)
    print(current_number)
    
    if current_number % 2 == 0:
        print("该数字为偶数")
        even_total += current_number  # 偶数累加
    else:
        print("该数字为奇数")
        odd_total += current_number  # 奇数累加

print("\n这是偶数的总和。")
print(even_total)
print("\n这是奇数的总和。")
print(odd_total)

简单说明

  • 把import random移到代码最顶部,这是Python导入模块的标准做法。
  • 改用current_number作为随机数的变量名,彻底避免和random模块名冲突。
  • 初始化even_total和odd_total为0,每次遇到对应奇偶的数字就用+=完成累加,这样最后得到的就是所有偶数/奇数的总和。
  • 循环里用_作为变量名,因为我们不需要用到这个循环变量的具体值,只是用来控制循环次数,这是Python里的常用小技巧。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:42:03