编辑:这个问题并不重复,因为我问的是如何缩短这个完整写出来的任务,而且据说与我重复的问题问为什么'a == b或c或d'总是评估为True,我知道答案,而不是我坚持的。
我开始制作这个功能,但我不知道是谁缩短这个'或'任务首先它看起来不好看,如果列表是100个元素长,那么打字移动会很荒谬[n ]一直到移动[n + 99]。
关于如何缩短这一点的任何建议,因为我无法想到任何事情,另外注意他们需要整数我知道我可以做到
if playerMove == '1 2 3 4 5 6 7 8 9'.split():
然而,playerMove是一个整数,数字是字符串。
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"))
答案 0 :(得分:3)
您实际上想检查成员身份,因此只需使用moves = {1,2,3,4,5,6,7,8,9}
if playerMove in moves:
# do something
运算符即可。另外,作为一种更加pythonic的方式,使用一个集合来保留你的移动,因为它的成员资格检查的复杂性大约是O(1):
geom_segment