如何使用end =“”片段创建一个保龄球记分牌

时间:2016-09-06 19:03:22

标签: python

我正在尝试创建一个python程序,该程序将读取Bowling乐谱,该乐谱由每次折腾击出的多个引脚组成。我正在尝试创建一个类似于保龄球记分牌的输出:

y

我有两个列表中的每个帧被击倒的分数,并且将遍历它们10次以获得十个帧。我尝试过不同的方法,但运气不好。到目前为止,我有类似的东西(假设框架正在访问列表中的正确值)。

  1   2   3   4   5   6   7   8   9    10
+---+---+---+---+---+---+---+---+---+-----+
|8 /|7 2|9 /|X  |- 7|X  |- -|9 /|X  |X 9 /|
| 17| 26| 63| 70| 80| 80| --|100|129|  149|
+---+---+---+---+---+---+---+---+---+-----+

你们有什么建议吗?非常感谢你!

1 个答案:

答案 0 :(得分:0)

一旦您调用\n,您就永远无法返回并再次修改该行。你想要做的是构建4个字符串,然后在最后连续打印:

def addEndCaps(lines):
    lines[1] += "+"
    lines[2] += "|"
    lines[3] += "|"
    lines[4] += "+"

lines = [ "", "", "", "", "" ]
for frame in range(1,11):
    lines[0] += "  %d " % frame
    lines[1] += "+---"
    lines[2] += "|   "
    lines[3] += "|   "
    lines[4] += "+---"

addEndCaps(lines)
print("\n".join(lines))

这会产生如下输出:

  1   2   3   4   5   6   7   8   9   10 
+---+---+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+---+---+

显然,您需要做一些格式化逻辑,以确保在2位和3位数字的情况下连字符和空格对齐。

如果您确实已经开始使用end=""(即它用于学校作业),那么您必须创建5个for循环:每行一个输出。