由于某种原因,我无法在循环中逃脱,我尝试调试它,看起来像循环是不受影响的,我不明白为什么。 (它是我的tictactoe游戏代码的一小部分)
users_main = []
computers_main = []
while True:
computers_storage = []
users_storage = []
if 0==0:
condition = True
while condition:
guess_y = int(raw_input('Enter coordinate y:')) -1
guess_x = int(raw_input('Enter coordinate x:')) -1
users_storage.append(guess_y)
users_storage.append(guess_x)
users_main.append(users_storage)
for a in computers_main:
if a == users_storage:
del users_storage[-2]
del users_main[-1]
condition = True
break
else:
condition = False
break
break
答案 0 :(得分:1)
if 0 == 0
永远不会是不真实的
while True:
虽然 是什么?
答案 1 :(得分:1)
users_main = []
computers_main = []
while True:
computers_storage = []
users_storage = []
if 0==0:
condition = True
while condition:
guess_y = int(raw_input('Enter coordinate y:')) -1
guess_x = int(raw_input('Enter coordinate x:')) -1
users_storage.append(guess_y)
users_storage.append(guess_x)
users_main.append(users_storage)
for a in computers_main:
if a == users_storage:
del users_storage[-2]
del users_main[-1]
condition = True
break # RIGHT HERE
else:
condition = False
break # AND HERE
我在这里标记的地方#34;就在这里#34;和"以及",您只是转义内循环,而不是转义while True
循环或while condition
循环。
另外,我已经注意到您的代码中有些奇怪的东西可能并非预期:
if 0==0:
condition = True
while condition:
该代码仅相当于使用while True:
。
此外,int(raw_input())
可以替换为input()
。
答案 2 :(得分:0)
当 computers_main 中包含值时,您只中断,因为您没有存储任何值,行:
for a in computers_main:
不会迭代任何内容,因为列表为空。因此,永远不会到达 for loop 中的中断。
答案 3 :(得分:0)
while(条件)循环的条件保持 True 。
computers_main 列表保持为空,因此
中的代码永远不会输入for a computers_main:
循环,因此永远不会更改条件(保持 True )。
答案 4 :(得分:0)
代码的第19行或第21行的'break'语句只会终止嵌套的while循环,而是保留外循环。所以外循环,这是一个无限循环
while True:
即使嵌套循环在每次迭代中终止,仍继续运行。因此,添加另一个条件来终止外部while循环。您可以使用另一个break语句:
while True:
computers_storage = []
...
if 0==0:
while condition:
...
...
condition = True
break
else:
condition = False
break
break