我们试图找出如何比较两个非类型的值来找到得分最高的骰子,但每次运行代码时都会显示Typeerror:unorderable类型:Nonetype()> Nonetype()
def compareresult():
if giveresult(dice) > giveresult(newdice):
print(giveresult(dice))
elif giveresult(newdice) > giveresult(dice):
print(giveresult(newdice))
return dice, newdice
giveresult
是:
def giveresult(tempDice):
if fiveofakind(tempDice) is True:
tempScore = int(50)
print(tempScore)
if fiveofakind(tempDice) is False:
tempScore = int(0)
print(tempScore)
答案 0 :(得分:0)
您的giveresult()
函数不是返回任何内容,因此会返回默认的None
。印刷不是一回事;您正在向终端写入文本,而不是返回,并且呼叫者不能使用写入终端的文本。
将print()
替换为return
:
def giveResult(tempDice):
if fiveofakind(tempDice):
return 10
else:
return 0
我也简化了你的功能;没有必要测试is True
; if
已经测试fiveofakind()
的结果是否为真。因为您已经针对fiveofakind()
进行了测试,所以您只需使用else
来选择其他案例。
接下来,避免每个骰子调用giveResult
以上,并再次从您的函数返回结果:
def compareresult():
dice_result = giveResult(dice)
newdice_result = giveResult(newdice)
if dice_result > newdice_result
return dice_result
elif newdice_result > dice_result:
return newdice_result
return dice, newdice
如果您必须返回更高的结果,请使用max()
function:
def compareresult():
dice_result = giveResult(dice)
newdice_result = giveResult(newdice)
return max(dice_result, newdice_result)