python - 正在制作一个 AI tic tac toe 机器人,但是当那里有一个值时,return 给出的输出为 none
问题描述
我对python有点陌生,这也是我第一次在这里询问任何错误,非常抱歉
我正在研究一个 AI tic tac toe 机器人,在测试它时,我发现很多时候输出都是空的,而不是返回中提到的输出
TL; DR:return 不给出而不是输出
(https://pastebin.com/kR2Mk2GA)
解决方案
我猜这cal
是返回 None 的函数。这很可能是因为您嵌套的 elif/if 第 35 到 178 行。让我们以最后一个为例:
elif squ[6] == squ[2] == "o":
# if this is True
if squ[4] != "x":
# But this is false
return "4"
# You end up not returning, which is equal to a None
squ[6] == squ[2] == "o"
当为 True 但squ[4] != "x"
为 False时应该发生什么?
旁注:尽量限制代码重复,这对调试有很大帮助。您可以做很多其他事情来使您的代码更好,找到它们的好方法是阅读其他人的代码。
玩得开心学习python!
推荐阅读
- android - 从 SQLite 数据库中获取最后三个记录
- networking - 如何在 GCP 中解决“在区域中找不到外部 IP 地址‘IP_ADDRESS_NAME’”
- android - 您如何为每个 api 调用进行登录查询以及如何使用 rxjava 处理响应?
- java - Flyway无法在java spring中设置模式?
- linux - 无法将适用于 Nvidia Jetson Nano 的 CVE-2019-12900 的 Yocto Bitbake 配方从 1.0.6 更新到 1.0.7
- ssas - 如何获取 SSAS DSV 中使用的 DataTables 元数据列表?
- apache-spark - 为什么在 spark 的 stop-all.sh 期间 jps 中没有停止的主节点出现?
- snakemake - 使用扩展功能时如何阻止snakemake将非文件结尾添加到通配符?(.g.vcf 失败,.vcf 有效)
- javascript - 如何在没有 javascript 键的情况下对 forEach 结果进行分组?
- lsf - 如何从 for 循环中的作业数组中获取作业 ID?