python-3.x - Python程序在if语句后不返回函数
问题描述
我正在编写一个 Python Tic-Tac-Toe 机器人,它在一个if
语句之后一直停止,而不是重新启动函数(下面的代码)。我在 Python 方面相当初级,希望得到更简单的答案。
代码:
def process():
uin = input('enter a move...')
if uin == 'A1':
atwo.remove('A1')
bone.remove('A1')
btwo.remove('A1')
sou = random.choice(aone)
print(sou)
aone.remove(sou)
return process
elif uin == 'A2':
aone.remove('A2')
athree.remove('A2')
btwo.remove('A2')
sou = random.choice(atwo)
print(sou)
atwo.remove(sou)
return process
elif uin == 'A3':
atwo.remove('A3')
btwo.remove('A3')
bthree.remove('A3')
sou = random.choice(athree)
print(sou)
athree.remove(sou)
return process
elif uin == 'B1':
aone.remove('B1')
btwo.remove('B1')
cone.remove('B1')
sou = random.choice(bone)
print(sou)
bone.remove(sou)
return process
elif uin == 'B2':
aone.remove('B2')
atwo.remove('B2')
athree.remove('B2')
bone.remove('B2')
bthree.remove('B2')
cone.remove('B2')
ctwo.remove('B2')
cthree.remove('B2')
sou = random.choice(btwo)
print(sou)
btwo.remove(sou)
return process
elif uin == 'B3':
athree.remove('B2')
btwo.remove('B2')
cthree.remove('B2')
sou = random.choice(bthree)
print(sou)
bthree.remove(sou)
return process
elif uin == 'C1':
bone.remove('C1')
btwo.remove('C1')
ctwo.remove('C1')
sou = random.choice(cone)
print(sou)
bthree.remove(sou)
return process
elif uin == 'C2':
btwo.remove('C2')
cone.remove('C2')
cthree.remove('C2')
sou = random.choice(ctwo)
ctwo.remove(sou)
return process
elif uin == 'C3':
btwo.remove('C3')
btwo.remove('C3')
ctwo.remove('C3')
sou = random.choice(cthree)
print(sou)
cthree.remove(sou)
return process
process()
解决方案
将函数放入while循环
while True:
process()
然后在满足赢得游戏的条件时在您的函数内部放置一个 break 以结束循环。
推荐阅读
- python - QueryDict 中的空列表实际上不为空
- java - 放心 - 如何放心地解析数组元素
- c# - 向上打开 wpf 菜单
- laravel - Laravel导入Excel,传递变量时出错
- elasticsearch - 在 Elassandra 中无法访问弹性搜索 url
- deep-learning - 使用不同的测量单位计算神经网络输出的损失 (MSE)
- html - 应用程序脚本 - 获取侧边栏信息
- reactjs - 带有功能组件的功能道具 - 不是功能(React + Typescript)
- c# - foreach 循环中的多线程
- docker - Docker secret 挂载一个空字符串