如何编写计算n个6面骰子投掷总和的函数,解决n未定义报错
代码问题修复说明
报错原因与其他问题梳理
- 出现
n未定义报错的核心原因是:n是dice_rolln函数的入参,仅在函数内部作用域有效,你需要主动调用函数并传入具体的骰子数量作为参数,不能直接单独运行函数内部的代码行。 - 现有代码还存在一处语法错误:内置求和函数
sum的调用使用了方括号sum[x],函数调用需要使用圆括号,正确写法为sum(x)。 - 额外优化提示:
np.random.seed(0)写在函数内部时,每次调用函数生成的骰子序列都会完全固定,无法模拟真实随机投掷效果,若需要随机结果可删除该行或将其移到函数外部。
修正后完整代码
import numpy as np def dice_rolln(n): # 需固定随机结果则保留此行,需随机结果可删除 np.random.seed(0) x = [np.random.randint(1, 7) for _ in range(n)] return sum(x) # 调用示例:计算4个骰子的投掷总和 print(dice_rolln(4))
调用方法
根据你需要计算的骰子数量,给dice_rolln传入对应的整数参数即可,例如计算6个骰子的总和直接写dice_rolln(6)即可正常运行,不会再出现n未定义的报错。
内容的提问来源于stack exchange,提问作者Mackenzie Watts
相关产品推荐
相关产品推荐

