이 확인 각 하위 목록에있는 모든 항목 == X 그.
wins = [['x', 'x', 0, 'x'], ['x', 0, 0, 'x'], ['x', 'x', 'x', 'x']]
# Iterate over all sublists
for win in wins:
# Iterate over all elements in list, and check if all equals x
if all(i == 'x' for i in win):
# If this is the case - write a message and break out of the loop
print("Well done! You've won!")
break
원한다면 원래 코드의 일부 문제를 해결해야합니다. if a and b and c and d == 'x'
이라고 말할 수는 없습니다. 이것은 다음과 같이 파이썬 interpereted된다
if wins[0][0] == 'x' and wins[0][1] == 'x' and wins[0][2] == 'x' and wins[0][3] == 'x':
다음 루프 안에이 모든 것을 넣어 :
for sublist in wins:
if sublist[0] == 'x' and sublist[1] == 'x' and sublist[2] == 'x' and sublist[3] == 'x':
print("Well done! You've won!")
break
if a is not False and
b is not False and
c is not False and
d == 'x'
당신과 같은 각 개별 항목을 확인하려면 그러나 이것은 정말로 성가신 일입니다. 대신 for 루프를 사용해야합니다. 하위 목록의 모든 항목을 통해 모든 하위 목록을 통해
for sublist in wins:
for item in sublist:
if item != 'x'
break
else:
print("Well done! You've won!")
break
이 코드 의지 루프, 다음 루프 : 이것은 더 명확 할 수있다 예입니다. 'x'와 같지 않은 항목이 있으면 내부 루프가 손상됩니다.
내부 for 루프 끝에는 else 절이 있습니다. 이것은 파이썬에서 거의 사용되지 않는 기능이지만 실제로 가지고 있으면 좋을 수 있습니다. else 절의 코드는 루프가 손상되지 않은 경우에만 실행됩니다.
우리의 경우 모든 항목은 'x'와 같습니다.
나는 이것을 대답 할 수 있도록 더 많은 프로그램을 볼 필요가 있다고 생각한다. 시작을 위해 무엇이 승리의 내용입니까? – ChrisProsser
승리의 내용은 내 6 x 7 격자 내에서 4 개의 다른 조합입니다. 또한 '격자'라는 목록 내에서 6 개의 목록입니다. – Peter