不懂 Python 怎么办,腾讯云 AI 代码助手来帮你
不懂 Python 怎么办,腾讯云 AI 代码助手来帮你
背景信息:首先说明一下,个人是一个 Java 开发者,对于 Python 的话,虽然说天下语言是一家,但是不同的语言还是有着一定的区别,这里就将我理解为一个不懂 Python 的小白吧。那么为什么不懂 Python,今天却要来提 python 呢?这是因为最近在开发的过程中,突然有一个 idea,就是想弄一个数独的小游戏,或者是小界面玩一下。于是就在 IDEA 开发工具里面 AI 代码助手输入【写一个数独游戏】,然后 AI 代码助手就为了生成了 Python 语言的代码。
背景信息
首先说明一下,个人是一个 Java 开发者,对于 Python 的话,虽然说天下语言是一家,但是不同的语言还是有着一定的区别,这里就将我理解为一个不懂 Python 的小白吧。那么为什么不懂 Python,今天却要来提 python 呢?这是因为最近在开发的过程中,突然有一个 idea,就是想弄一个数独的小游戏,或者是小界面玩一下。于是就在 IDEA 开发工具里面 AI 代码助手输入【写一个数独游戏】,然后 AI 代码助手就为了生成了 Python 语言的代码

为了可以体验到 AI 代码助手写的数独游戏,那我必须搞一套 python 环境和工具来感受一下。
PyCharm 下载&安装
在你想使用 python 语言之前,你首先需要一个 python 的开发工具,就像你是 java 开发者,你用 IntelliJ IDEA Community Edition 2023.2.7 开发工具一样,那么 python 语言也有自己的开发工具。在浏览器输入 pycharm 官网地址:https://www.jetbrains.com.cn/en-us/pycharm/download/?section=windows 在 pycharm 下载页面,这里我们作为业余开发者,不需要下载专业版 pycharm 开发工具,主要是由于专业版开发工具下载之后只能试用 30 天就不能用了

我们在当前页面下拉就可以看到 pycharm 开发工具的社区版,对于我们来说,社区版开发工具足够用了,并且是免费的

下载完成之后,安装操作的话,按照默认的选项直接下一步下一步就可以了。开发工具下载安装完成之后,下面就是 python 运行环境搭建。
Python 环境
在 python 开发工具 pycharm 下载安装完成之后,我们就可以搭建我们的 python 运行环境,在 python 官网:https://www.python.org/downloads/windows/ 找到并点击 Latest Python 3 Release - Python 3.13.2,这里我的电脑是 windows 系统,因此这里我就以 windows 操作系统操作来讲述

点击【Latest Python 3 Release - Python 3.13.2】的链接跳转到 python 3132 版本下载页面,下拉页面找到当前操作系统适应的版本并下载

下载完成后,放在自定义的文件夹或者默认文件夹双击并安装,安装完成之后,在系统环境变量 path 中增加 python 安装路径

环境变量配置完成之后,在 windows 搜索框输入 cmd 打开命令行窗口,输入 python 可以看到当前安装的 python 环境的版本,说明 python 运行环境安装成功

AI 代码助手安装
在桌面找到我们安装好的 pycharm 开发工具,双击打开,选择【File】-【Settings…】打开 pycharm 开发工具设置页面

在设置页面找到插件【Plugins】,选择【Marketplace】,在搜索框中输入【AI 代码助手】找到腾讯云 AI 代码助手,并点击安装【Install】

等待安装完成后,点击【Restart IDE】重启开发工具,重启 pycharm 之后,就可以看到我们的,登录微信账号就可以正常使用了

生成数独游戏
这里才是真的步入主题,其实我本来就只是想利用 AI 代码助手来写一个数独游戏,并且可以感受一下数独游戏的魅力。那么上面写的内容也不是说胡扯的哦,对于一个新手小白来说,记录当下操作的每一步,那么如果后面有别的小伙伴和我有同样的想法,想要自己搭建一套 python 开发环境的话,那么直接对着我的文章操作就可以,可以省很多时间,知识共享。在 AI 代码助手页面我选择 deepseek-r1 模型,输入我想要的内容【写一个简单的数独游戏 python 实现】

等待 AI 代码助手对我们的需求进行思考之后,会生成对应的 python 代码,我们直接点击右侧的【创建代码文件】

在对代码文件没有任何修改的情况下,导入 python 运行环境之后,直接执行当前创建的 python 文件,可以看到 python 文件执行后没有任何报错,可以直接提示你进行输入了

这里对于第一行第三列我输入一个第一行已经存在的数字,然后点击回车看一下效果,会直接提示数字违反规则

而我们输入满足规则的数字 2 之后,输出的数独内容会把我们输入的数字 2 补充进第一行第三列的位置

这个感觉还是不错的,虽然生成的 python 代码没看懂,但是运行的效果不错。那么为了可以看懂代码,我们可以选中全部代码,然后选择【腾讯云 AI 代码助手】-【补全注释】为我们的代码生成注释

注释生成之后,点击右侧的【插入代码】可以将生成的代码注释补全到对应的代码行,方便我们对不同的代码块快速理解

那么为了验证数独游戏在填写对的情况下是否可以返回预期的胜利消息,我们直接将数独的内容复制放在 AI 代码助手中,让 AI 代码助手来补全所有的空缺数字,复制原始数独内容
|5 3 . | . 7 . | . . .|
|6 . . | 1 9 5 | . . .|
| . 9 8 | . . . | . 6 .|
|-------------------|
|8 . . | . 6 . | . . 3|
|4 . . | 8 . 3 | . . 1|
|7 . . | . 2 . | . . 6|
|-------------------|
| . 6 . | . . . | 2 8 .|
| . . . | 4 1 9 | . . 5|
| . . . | . 8 . | . 7 9|
补全所有空缺数字
这个时候 AI 助手会对每一行的数字进行分析并给出最终的数独填空后的结果

下面我们按照 AI 代码助手给出的数独填空答案,并结合最初版的空位信息,依次填入数字后完成数独游戏,如果你不想自己按照上面的填空答案来编写命令的话,你也可以直接让 AI 代码助手来帮我们生成对应的命令信息,比如输入【生成补全空缺数字命令】,AI 代码助手会为我们生成所有缺失数字的补全命令,

这个时候你就可以逐个执行上面的命令,然后体验一下数独拥有答案的感觉。在生成补全缺失数字命令的同时,还生成了自动补全缺失数字的 python 代码,那么我们直接插入自动填充答案的方法

同时将原始 main 方法修改为具有自动补全缺失数字方法调用的 main 方法。修改完成之后再次执行 main 方法

这里执行后打印的数独验证结果显示 False,但是我看到整个数独并没有什么问题,于是让 AI 再帮我们分析一下当前数独填补是否有问题,再 AI 代码输入框输入
|5 3 4 | 6 7 8 | 9 1 2|
|6 7 2 | 1 9 5 | 3 4 8|
|1 9 8 | 3 4 2 | 5 6 7|
|-------------------|
|8 5 9 | 7 6 1 | 4 2 3|
|4 2 6 | 8 5 3 | 7 9 1|
|7 1 3 | 9 2 4 | 8 5 6|
|-------------------|
|9 6 1 | 5 3 7 | 2 8 4|
|2 8 7 | 4 1 9 | 6 3 5|
|3 4 5 | 2 8 6 | 1 7 9|
哪个位置的数字不对
然后 AI 代码助手对我们的数独进行了全方位的分析后并没有发现不对的数字,那就只能是校验数独正确性的方法有问题了

这里既然定位到是数独校验的方法 check_win 有问题,那么就选中有问题的代码行,输入我们的疑问【数独数字正确,但是返回 False】继续让 AI 代码助手来帮我们分析这个校验方法的问题

经过 AI 代码助手对数独校验方法进行详细的分析之后,自动定位到 is_valid 方法,并给出了具体的问题原因:在标准数独规则验证中,当检查某个位置的值时,需要排除该位置自身的值。原始代码的验证逻辑未正确排除当前单元格,导致误判冲突。同时生成了校验方法 is_valid 的替换方法

我们将生成的 is_valid 校验方法复制并替换掉现有代码中的 is_valid 方法,再次执行 main 方法看一下效果

这是可以看到数独游戏最终验证成功,所有的数字自动填充后都是满足数独有的校验规则的。
相关 Python 源代码
class SudokuGame:
def __init__(self):
"""初始化数独游戏"""
# 原始题目(0 表示空格)
self.original = [
[5,3,0,0,7,0,0,0,0],
[6,0,0,1,9,5,0,0,0],
[0,9,8,0,0,0,0,6,0],
[8,0,0,0,6,0,0,0,3],
[4,0,0,8,0,3,0,0,1],
[7,0,0,0,2,0,0,0,6],
[0,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,8,0,0,7,9]
]
# 当前棋盘状态(可修改的副本)
self.board = [row.copy() for row in self.original]
# 标记可编辑的位置(原始题目中为 0 的位置)
self.mask = [[num == 0 for num in row] for row in self.original]
def print_board(self):
"""可视化打印数独棋盘(带格式)"""
print("-"*21)
for i in range(9):
# 每 3 行添加横向分隔线
if i % 3 == 0 and i != 0:
print("|" + "-"*19 + "|")
row = []
for j in range(9):
# 可编辑的空格显示为" ."
if self.mask[i][j] and self.board[i][j] == 0:
row.append(" .")
else:
row.append(f"{self.board[i][j]}")
# 每 3 列添加纵向分隔符
if (j+1) % 3 == 0 and j != 8:
row.append("|")
# 包裹整行的竖线
print("|" + " ".join(row) + "|")
print("-"*21)
def is_valid(self, row, col, num):
"""验证在 (row,col) 位置放置 num 是否符合数独规则"""
# 检查行冲突(排除当前列)
for c in range(9):
if c != col and self.board[row][c] == num:
return False
# 检查列冲突(排除当前行)
for r in range(9):
if r != row and self.board[r][col] == num:
return False
# 检查 3x3 宫冲突(排除当前位置)
start_row, start_col = 3 * (row // 3), 3 * (col // 3)
for i in range(3):
for j in range(3):
current_row = start_row + i
current_col = start_col + j
if current_row == row and current_col == col:
continue # 跳过自身
if self.board[current_row][current_col] == num:
return False
return True
def check_win(self):
"""检查是否完成且符合数独规则"""
# 条件 1:棋盘无空格
# 条件 2:所有已填数字符合规则
return all(0 not in row for row in self.board) and \
all(self.is_valid(r, c, self.board[r][c]) for r in range(9) for c in range(9))
def play(self):
"""游戏主逻辑循环"""
print("数独游戏开始!(输入格式:行 列 数字,如:1 2 3)")
while True:
self.print_board()
# 胜利检测
if self.check_win():
print("🎉 恭喜,数独完成!")
return
try:
cmd = input("请输入操作(或 q 退出): ").strip()
# 退出机制
if cmd.lower() == 'q':
print("游戏退出")
return
# 解析输入(转换为 0-based 索引)
row, col, num = map(int, cmd.split())
row -= 1 # 用户输入 1-9 转程序 0-8
col -= 1
# 输入有效性检查
if not (0 <= row <= 8 and 0 <= col <= 8):
print("错误:行列必须为 1-9")
continue
if not self.mask[row][col]: # 检查是否可编辑位置
print("错误:该位置不可修改")
continue
if not 1 <= num <= 9: # 数字范围检查
print("错误:数字必须为 1-9")
continue
if not self.is_valid(row, col, num): # 数独规则检查
print("警告:该数字违反规则")
continue
# 更新棋盘
self.board[row][col] = num
except ValueError: # 处理格式错误
print("输入格式错误,请按示例格式输入")
def auto_complete(self):
"""自动填充正确答案"""
solution = [
[5,3,4,6,7,8,9,1,2],
[6,7,2,1,9,5,3,4,8],
[1,9,8,3,4,2,5,6,7],
[8,5,9,7,6,1,4,2,3],
[4,2,6,8,5,3,7,9,1],
[7,1,3,9,2,4,8,5,6],
[9,6,1,5,3,7,2,8,4],
[2,8,7,4,1,9,6,3,5],
[3,4,5,2,8,6,1,7,9]
]
for i in range(9):
for j in range(9):
if self.mask[i][j]:
self.board[i][j] = solution[i][j]
if __name__ == "__main__":
game = SudokuGame()
#game.play()
game.auto_complete()
game.print_board()
print("验证结果:", game.check_win())
结语
到这里,我们基于腾讯云 AI 代码助手自动生成数独游戏,并通过填入空缺数字进行补全,补全后进行数独游戏规则校验的整个流程就结束了。在整个数独游戏的操作中,从最初版的数独游戏代码,到后面的自动补全数字代码以及数独游戏数字校验的校验代码,全程没有一行代码是人工手写的(因为人工不会 python)。整个代码都是通过人工输入自然语言,AI 代码助手生成代码以及代码问题排查等。从这里的感受来说,AI 代码助手在 python 语言的代码编写上,采纳率基本可以达到 100%。虽然采纳后代码本身逻辑导致初次校验 False,但是再次与 AI 代码助手对话后生成的校验代码,直接复制替换执行就完成了整个操作。
总的来说,AI 代码助手在编程方面的代码生成能力相对于 deepseek 接入前确实提升了很多,后面会继续尝试复杂业务场景的代码生成以及代码采纳率的观测。AI 代码助手,对于职场新人来说,绝对是一个资深助理级别的好帮手。
标签: 项目实战,AI 代码助手,Python,数独游戏
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)