Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么即使条件为真,循环也会中断?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我用python中的字典制作了一个简单的Tic-Tac-Toe游戏。当条件匹配时,while循环应该中断。但它还在继续。你知道吗</p> <p>我尝试用“or”替换“and”操作符,循环在第一次运行时中断。怎么了?如果条件满足,为什么循环不平衡?你知道吗</p> <hr/> <pre><code>theBoards = {'A' : ' ', 'B': ' ', 'C' : ' ', 'D' : ' ', 'E' : ' ', 'F' : ' ', 'G' : ' ', 'H': ' ', 'I': ' '} def drawBoard(theBoard): print(theBoard['A'] + '|' + theBoard['B'] + '|' + theBoard['C']) print('-+-+-') print(theBoard['D'] + '|' + theBoard['E'] + '|' + theBoard['F']) print('-+-+-') print(theBoard['G'] + '|' + theBoard['H'] + '|' + theBoard['I']) drawBoard(theBoards) turn = 'X' while True: move = input("Where do you want your " + turn + ': ') theBoards[move] = turn drawBoard(theBoards) if( theBoards['A'] == theBoards['B'] == theBoards['C'] and theBoards['D'] == theBoards['E'] == theBoards['F'] and theBoards['G'] == theBoards['H'] == theBoards['I'] and theBoards['A'] == theBoards['D'] == theBoards['G'] and theBoards['B'] == theBoards['E'] == theBoards['H'] and theBoards['C'] == theBoards['F'] == theBoards['I'] and theBoards['A'] == theBoards['E'] == theBoards['I'] and theBoards['C'] == theBoards['E'] == theBoards['G']): print("Winner is " + turn) break if turn == 'X': turn = 'O' else: turn = 'X' </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您应该尝试使用“or”条件,因为每个单独的求值结果都需要是一个断点,而不是所有这些求值结果都是相同的true或false。你知道吗</p> <p>并且代码用相同的“”值初始化了每个键的“theBoards”变量,因此当您尝试使用“or”条件时,非常适合在第一次运行时中断循环。你知道吗</p> <p>尝试“或”条件,而不是“和”,不要在第一个回合检查赢家。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
5 回答
如何在乒乓球游戏中阻止球
6 回答
如何在乘法和模中不乘空间?
3 回答
如何在乘法和除以2个不同的数字之间进行交换?
6 回答
如何在也是数据一部分的单个字符上拆分大字符串
10 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
5 回答
如何在事件wxWidgets中传递自定义数据
4 回答
如何在事件中使用lambda i=i?
5 回答
如何在事件中心只接收最近的数据
8 回答
如何在事件发生之前保持云函数运行?
10 回答
如何在事件发生后使页面重定向到同一页面
6 回答
如何在事件回调之间保持python生成器的状态
7 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
9 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
10 回答
如何在事件处理程序中访问外部对象?
8 回答
如何在事件循环中将协程打包为正常函数?
8 回答
如何在事件循环之外运行协同程序?
3 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
3 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
6 回答