满意答案
ffxj3505
2014.11.11
采纳率:40% 等级:11
已帮助:6098人
1234567891011121314print '''+ - - - - - + - - - - - + - - - - - + - - - - - +| | | | || | | | |+ - - - - - + - - - - - + - - - - - + - - - - - +| | | | || | | | |+ - - - - - + - - - - - + - - - - - + - - - - - +| | | | || | | | |+ - - - - - + - - - - - + - - - - - + - - - - - +| | | | || | | | |+ - - - - - + - - - - - + - - - - - + - - - - - +'''追问: 如果是m行n列呢
追答: 原来之前那个问题也是你提的啊。那确实要上函数了:123456789101112131415def drawTable(iRow, iColumn, iCellW=5, iCellH=3): def func(x, y): if (x % iCellW == 0) and (y % iCellH == 0): print '+', elif x % iCellW == 0: print '|', elif y % iCellH == 0: print '-', else: print ' ', for y in range(iColumn * iCellH + 1): for x in range(iRow * iCellW): func(x, y) print '+'drawTable(4, 4)
追问: 要用上函数呢
追答: 行列数目以及单元格宽度都可通过函数参数控制。
iRow, iColumn 分别表示行数和列数;
iCellW, iCellH 分别表示单元格宽度和高度。
代码在python 2.7版本上测试通过,如果是python 3,要将print后的内容放入小括号。
追问: 嗯
追答: ok
追问: 我不会编程就只能这样了
追答: 我是初学者...在答题中学习。
参考了另一个相似问题的答案。那个答案框架正确,但运行结果不对,为修正也想了半天。
追问: 嗯是2.7
追答: 涉及X,Y二维阵列的打印输出基本是要用两个for循环嵌套的。
Python我也是初学,只能是多看看别人的代码,再加上自己多练习慢慢摸索。
追问: 老师说用2.7的比较好稳定
追答: 不客气,突然发现最后一列有点不对,都是+。代码更新一下:123456789101112131415161718def drawTable(iRow, iColumn, iCellW=5, iCellH=3): def func(x, y): if (x % iCellW == 0) and (y % iCellH == 0): print '+', elif x % iCellW == 0: print '|', elif y % iCellH == 0: print '-', else: print ' ', for y in range(iColumn * iCellH + 1): for x in range(iRow * iCellW): func(x, y) if (y % iCellH == 0): print '+' else: print '|'drawTable(4, 4)
for循环中完善了对行末输出的处理。
追问: 大神啊
追问: 我没有编程的思维,虽然我能听懂老师讲课但是我自己写的时候就完全摸不着头脑了
追问: 好的谢谢你的帮助
00分享举报