为什么我的Hangman游戏输出末尾会打印'None'?
问题原因与解决办法
原因
你看到的额外None,是因为Python中没有显式return语句的函数,默认返回None。你的life函数内部用print()输出了绞刑架图案,但函数本身没有返回任何值——也就是说,当你调用life(5)时,它会先执行内部的print输出图案,然后返回默认的None。而你又把这个函数调用放到了外层的print()里,相当于执行了print(None),所以最后会多打印一行None。
解决办法
有两种简单的修复方式:
方案一:直接调用函数,去掉外层
print
把代码里的print(life(5))改成life(5),让函数内部的print负责输出图案,外层不再额外打印函数返回值。方案二:修改函数返回字符串,外层打印返回值
将函数里的print()替换为return,让函数返回对应图案的字符串,再由外层print输出:def life(n): if n==6: return "|\n|\n|\n|\n|\n" elif n==5: return "________\n| |\n|\n|\n|\n|\n|" elif n==4: return "________\n| |\n| O\n|\n|\n|\n|" elif n==3: return "________\n| |\n| O\n| |\n| |\n| \n|" elif n==2: return "________\n| |\n| O\n| /|\ \n| |\n| \n|" elif n==1: return "________\n| |\n| O\n| /|\ \n| |\n| __/_\__\n| |||||||" elif n==0: return "________\n| |\n| O\n| /|\ \n| |\n| / \ \n|" print(life(5))
内容的提问来源于stack exchange,提问作者radha
相关产品推荐
相关产品推荐

