我正在尝试创建一个4x3表没有方法或for循环。 我想用我在课堂上学到的东西,包括布尔语,if语句和while循环。
我想要它,这样如果我输入create_table('abcdefghijkl')
,它将从左上方的行和列开始,然后向下直到列的末尾,然后再次在下一列的顶部开始,所以在上面,如下所示:
| a | e | i |
| b | f | j |
| c | g | k |
| d | h | l |
以下是我到目前为止的情况。它不完整。如何添加到函数中以便在向下4行后,字符串应该从顶部开始继续到下一列? 我在震撼我的脑子。
我可以在网上找到的所有示例用于循环和方法来创建这样的表,但是我想为这个实现while循环。
提前致谢!
def create_table(table):
t = "" + "|" + ""
i = 0
while i < 12:
t = t + " " + "|" + table[i] + " "
i=i+1
print(t)
return table
答案 0 :(得分:4)
根据行而不是列来考虑它。你一次写一行,而不是一次写一列,所以看一下原始列表中各个单元格的索引:
| 0 | 4 | 8 |
| 1 | 5 | 9 |
| 2 | 6 | 10 |
| 3 | 7 | 11 |
请注意,每行的单元格索引相差4个。找到n th 行的单元格的简单表达式,任务将变得更加容易,因为您基本上将打印出常规表格。
答案 1 :(得分:2)
你可以使用简单的配方将大多数for循环转换为while循环,所以如果你弄清楚如何使用for循环,那么你很高兴。如果你有
for x in s:
{statements}
成功
i = 0
while i < len(s):
x = s[i]
{statements}
i += 1
它不适用于某些不支持长度和索引的可枚举类型,例如生成器。
答案 2 :(得分:0)
因为要打印到终端,所以您需要考虑打印每个水平行,而不是每个垂直列。尝试类似:
table = 'abcdefghijkl'
i = 0
while i < 4:
print("| {} | {} | {} |".format(table[i], table[i+4], table[i+8]))
i += 1