如何在不使用方法或for循环的情况下创建表?

时间:2013-06-08 04:10:23

标签: python python-3.x

我正在尝试创建一个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

3 个答案:

答案 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