编辑:这个问题不是重复的,因为我在问如何缩短这个完整写出的任务,而据说与我重复的问题问为什么"a == b 或 c 或 d"总是计算为 True,我知道答案,这不是我坚持的。
我开始制作这个函数,但是我不知道谁来缩短这个"或"任务,因为首先它看起来不好,其次,如果列表有 100 个元素长,那么一直键入 move[n] 到 moves[n+99] 都是荒谬的。
关于如何缩短它的任何建议,因为我想不出任何东西也旁注它们必须是我知道我可以做的整数
if playerMove == '1 2 3 4 5 6 7 8 9'.split():
但是玩家移动是一个整数,数字是字符串。
def getPlayerMove(playerMove):
while True:
n=0
moves = [1,2,3,4,5,6,7,8,9]
if playerMove == moves[n] or moves[n+1] or moves[n+2] or moves[+3] or moves[n+4] or moves[n+5] or moves[n+6] or moves[n+7] or moves[n+8] or moves[n+9]:
return playerMove
else:
playerMove = int(input("Enter Number 1-9"))
您实际上想检查成员资格,因此只需使用in
运算符即可。此外,作为一种更python化的方式,使用一个集合来保留您的移动,因为它的成员资格检查的复杂性约为O(1(:
moves = {1,2,3,4,5,6,7,8,9}
if playerMove in moves:
# do something