python - 带变量的中断循环 - Python
问题描述
我想以更紧凑的形式编写我的循环。当我有这种形式的代码时,一切正常:
a=-1
while a <0:
user_move()
if (nastede[1]==X) and (nastede[2]==X) and (nastede[3]==X):
print("Game Over")
break
print("END")
但是当我尝试以这种形式使用代码时,我的循环不会中断:
y=(nastede[1] and nastede[2] and nastede[3])
a=-1
while a <0:
user_move()
if y == X:
print("Game Over")
break
print("END")
为什么我在第二种情况下的循环不会与nastede[]
inside中断y
?
更改后(所有代码):
nastede=[" ", " ", " ", " ", " ", " ", " ", " ", " "]
X="X"
def list_global():
global nastede
print(" ",nastede[0],"| ",nastede[1]," | ",nastede[2]," ")
print("---------------")
print(" ",nastede[3],"| ",nastede[4]," | ",nastede[5]," ")
print("---------------")
print(" ",nastede[6],"| ",nastede[7]," | ",nastede[8]," ")
def user_move():
a=-1
while a<0:
move_hum=int(input("Write a number from 1 to 8 ?\n"))
if (nastede[move_hum] != X) and (nastede[move_hum] != O):
nastede[move_hum] = "X"
list_global()
break
else:
print("Write different number")
a=-1
while a <0:
user_move()
if all(map(lambda x: x == X, nastede)):
print("Game Over")
break
print("END")
解决方案
推荐阅读
- r - R 警告:条件的长度 > 1,并且只会使用第一个元素。外功能
- c# - 不可调用的 Hashtable.keys 成员不能用作方法
- java - 是否可以在 camunda 中使用 Fluent API 更新正在运行的流程实例?
- python - 这个 Power Set 程序的复杂性是什么?
- mysql - 按未处理 MySql 中的临时表排序
- pandas - Pandas 中列的成对差异
- ionic3 - 如何使用 Ionic 3 运行 Android 的活动或服务
- c# - 如果 .Net Core 可以在 Windows 上运行,为什么不能在 .Net Framework 中引用 .Net Core DLL?
- c - C Unicode:如何将 C11 标准修订 DR488 修复应用于 C11 标准函数 c16rtomb()?
- c# - C# 访问 Windows 10 打印机图标