Python3.10如何解决掷两个骰子问题,自定义函数代码运行异常怎么修复
Python掷骰子功能修复方案
原代码存在的问题
- 未导入
random模块,调用随机方法会直接报错 random.randint(1,7)逻辑错误,骰子点数范围是1~6,应修改为random.randint(1,6)- 自定义
dice函数的输入参数无意义,函数内部会直接覆盖传入的参数值 - 调用
dice函数后未接收返回的骰子点数,直接拿函数对象和整数做逻辑判断,条件完全不成立 - 累计变量
sum未初始化就直接运算,会触发未定义报错 - 逻辑判断条件完全错误:
if dice == dicee2是将函数对象和整数对比,永远不成立;elif dice != dice是恒假条件,永远不会触发 - 循环控制逻辑混乱,没有明确的终止条件对应逻辑
修复后代码
实现功能:每次投掷两个骰子,两次点数相同时累加点数继续投掷,直到两次点数不同时输出累计总点数
import random def dice(): dice1 = random.randint(1,6) dice2 = random.randint(1,6) return dice1, dice2 total = 0 same_count = 0 while True: d1, d2 = dice() print(f"本次掷出点数:{d1}, {d2}") if d1 == d2: total += d1 + d2 same_count += 1 print(f"当前累计点数:{total}") else: total += d1 + d2 print(f"Conclusion:{total},累计掷出相同点数次数:{same_count}") break
如果需要调整统计逻辑,直接修改上述代码的判断条件即可。
内容的提问来源于stack exchange,提问作者user17097848
相关产品推荐
相关产品推荐

