【发布时间】:2018-04-16 10:28:50
【问题描述】:
我用 python 编写了石头剪刀布游戏,但我遇到了无法解决的错误。请帮忙。
import random
p1 = random.randint(0, 2)
def choosing():
p = int(input("Rock: 0; Paper: 1; scissor: 2:"))
if p < 0 or p > 2:
print("\nPlease enter valid value")
choosing()
else:
return int(p)
p2 = choosing()
print ("\n" + str(p1))
if p1 == p2:
print("DRAW!!")
elif p2 - p1 == 1 or p1 - p2 == 2:
print("YOU WON!!")
elif p1 - p2 == 1 or p2 - p1 == 2:
print("YOU LOSE!!")
错误提示
> Traceback (most recent call last):
File "python", line 15, in <module>
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
只有在输入无效值后输入有效值时才会出现错误
【问题讨论】:
-
你错过了第 7 行的回报
-
对于询问输入来说,递归似乎有点矫枉过正。
-
我还有另一个问题,当代码在在线解释器中运行时一切正常,但是在 linux 终端中运行时出现错误
./paper.py: line 2: syntax error near unexpected token '(' ./paper.py: line 2: 'p1 = random.randint(0, 2)'
标签: python types typeerror nonetype