求助:Python实现生命游戏网格转字符串的代码问题
生命游戏网格转字符串问题修复
原代码存在的核心问题
- 错误使用
input()函数:这会强制要求用户输入数据,而非直接处理传入的grid参数 - 单元格转换为符号后,未将符号追加到结果字符串中
- 换行符未整合到最终字符串,而是在循环内提前打印,导致结果不完整
- 初始化的
mystr带多余空格,会破坏网格格式 - 测试用的
lifeGrid变量和函数调用代码被嵌套在函数定义内部,永远不会被执行
修正后的代码
def gridToString(grid): # 初始化空字符串,无多余空格 mystr = '' for row in grid: # 处理当前行的每个单元格 for cell in row: # 根据单元格值转换为对应符号 if cell == 0: mystr += '+' elif cell == 1: mystr += 'O' # 每行处理完后添加换行符 mystr += '\n' # 返回最终的网格字符串 return mystr # 测试用的生命游戏网格 lifeGrid = [ [1,1,1], [0,0,0], [0,0,1] ] # 转换并打印结果 gridStr = gridToString(lifeGrid) print(gridStr)
关键修正说明
- 移除所有
input()调用:直接遍历传入的grid数据进行处理 - 将转换后的符号直接追加到
mystr:确保每个单元格的符号都被加入结果 - 每行处理完成后添加
\n:保证网格按行分隔,形成三行结构 - 初始化
mystr为空字符串:避免首行开头出现多余空格 - 将测试代码移到函数外部:确保函数能被正确调用并执行测试
运行修正后的代码,会输出符合要求的三行网格:
OOO +++ ++O
内容的提问来源于stack exchange,提问作者TRNF
相关产品推荐
相关产品推荐

