如何为Python 6面骰子模拟的点数分配对应数值?
问题解决:骰子投掷点数对应数值输出
你的代码有几个关键问题导致无法得到预期结果:
dice = print(random.randint(1,6))逻辑错误:print()函数的返回值是None,所以dice变量实际是None,根本不会等于任何数字- 缩进错误:if语句前的多余缩进会触发语法报错
- 类型不匹配:
random.randint(1,6)生成的是整数,你却和字符串(比如'1')做比较,永远不会相等 - 数值对应关系搞反了:题目要求1、2、3对应5/4,4、5、6对应10/2,你写反了对应逻辑
以下是修正后的代码:
import random print("Let's roll the dice") # 先获取随机点数并赋值 dice = random.randint(1,6) # 打印投掷的点数 print(f"投掷点数:{dice}") # 根据点数判断对应数值 if dice in (1,2,3): print("对应数值:5/4") else: print("对应数值:10/2")
也可以用更简洁的三目运算符实现:
import random print("Let's roll the dice") dice = random.randint(1,6) print(f"投掷点数:{dice}") print("对应数值:5/4" if dice <=3 else "对应数值:10/2")
这样就能实现你要的效果:投掷1-3点时输出5/4,4-6点时输出10/2。
内容的提问来源于stack exchange,提问作者Donny
相关产品推荐
相关产品推荐

