我正在尝试创建一个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|
+---+---+---+---+---+---+---+---+---+-----+
你们有什么建议吗?非常感谢你!
答案 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
循环:每行一个输出。