编写轮流掷骰子模拟程序后运行始终显示None,求技术帮助
解决骰子模拟程序中出现
None的问题 嘿,我看到你的问题啦!程序每一行都显示None的原因很简单——你在input()函数里嵌套了print(),而print()本身的返回值是None,所以每次调用input(print("..."))的时候,先执行print输出你的提示语,然后input会把None当作提示内容显示出来,这就是你看到的那些None的来源~
修改后的代码
import random # Function That Simulates Dice Roll def dice_roll(): while True: print() # 移除input里的嵌套print,直接把提示字符串作为input的参数 question = input("Do you want to roll the dice ? (Y/N)") print() if question == 'Y' or question == 'y': # 同样移除这里的嵌套print name = input("Enter your name") print() print(name + ":") print() num = random.randint(1, 6) # 小提醒:标准骰子是1-6,原代码的randint(1,7)会生成1到7的整数,按需调整哦 print("The Dice rolls and The number is " + " " + str(num)) elif question == 'N' or question == 'n': print("OK") print("Exiting The Program") print("Have a nice day :-)") break # Above Function Gets Called dice_roll()
关键修改说明
- 核心问题修复:把
input(print("提示语"))改为input("提示语"),input函数本身就支持直接传入提示字符串作为显示内容,不需要嵌套print - 额外优化:调整了骰子生成的数值范围为1-6,符合常规骰子的规则,如果你的需求确实是1-7,可以改回
random.randint(1,7)
内容的提问来源于stack exchange,提问作者Aritra Roy
相关产品推荐
相关产品推荐

