Python忍者对战小游戏运行后血量栏下方返回None问题求助
问题原因与解决方案
问题诱因
你遇到的输出None的问题由两处逻辑叠加导致:
- 你定义的
return_health函数没有显式声明返回值,Python中所有无显式return语句的函数,默认返回None - 你在
fight函数中调用return_health时,额外套了一层print(),等于先执行return_health内部的打印逻辑输出姓名和血量条,再打印函数返回的None,就出现了多余的None输出
修复方案
直接删掉fight函数中调用return_health时外层的print()即可,修改前的代码为:
print(return_health(player1.name, player1.health, player1.maxhealth, player1.healthdashes)) print(return_health(player2.name, player2.health, player2.maxhealth, player2.healthdashes))
修改后为:
return_health(player1.name, player1.health, player1.maxhealth, player1.healthdashes) return_health(player2.name, player2.health, player2.maxhealth, player2.healthdashes)
因为return_health函数内部已经完成了血量条的打印操作,不需要再额外套一层print打印函数返回值。
内容的提问来源于stack exchange,提问作者Sphustered
相关产品推荐
相关产品推荐

