0

下面的代码创建了赛道的一维图像:

def displayTrack(position):

    output=''#value given to output
    track=[' ']*20# track is initially just a bunch of empty spaces
    track[position]= 'r'#AND track also contains an r icon
    print(' -'*20)#these are the top and bottom borders
    print('0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J')#these represent each individual cell


    for i in range(len(track)):
        output= output +track[i] +'|'#append a "|" before and after each empty space " "
    print (output)#print the result
    print(' -'*20)

如果您运行此代码,您将能够查看图像。如果您查看字符“r”,您会看到字符“r”的右侧有“|” 特点。我需要实现一个“|” 在跑步者的左侧也是如此。我需要使用类似于上面的方法,因为许多变量和图像的初始状态取决于其他变量等。

我知道问题存在于 output= '' 的命运中。相反,如果输出不是空格,或者根本不是字符,那么图像将正确显示,但我不知道如何做到这一点。有人可以帮我一把吗?任何和所有的帮助表示赞赏。

如果有任何不清楚的地方,请告诉我,我会尽快更改。

编辑:所以我发现新代码应该是这样的:有 3 处更改:

1)输出='|' 而不是 '' 2) 在包含连字符和字母数字字符的字符串中,末尾的空格被移到开头。这解决了所有问题。

4

2 回答 2

1

这是你想要的吗 ?目前尚不清楚,因为您的原始布局很奇怪。

def displayTrack(position):

    output='|'#value given to output
    track=[' ']*20# track is initially just a bunch of empty spaces
    track[position]= 'r'#AND track also contains an r icon
    print(' -'*20)#these are the top and bottom borders
    print(' 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J')#these represent each individual cell

    for i in range(len(track)):
        output= output +track[i] +'|'#append a "|" before and after each empty space " "
    print (output)#print the result
    print(' -'*20)
于 2012-11-23T14:45:16.650 回答
1

您的评论#append a "|" 每个空格“”之前和之后都具有误导性。它之前的语句是添加轨道的一部分和一个“|”。它不看字符是否是一个空格,并且在它之前没有放置任何东西。空格前有 | 的唯一原因是因为它们遵循的位置后面有一个。

要将某些内容放在其他内容之前,请从 output = '|' 开始 代替 ''。在这种情况下,您可能还想在其他行之前放置一个额外的空间,以保持排列整齐。例如:打印(''+'-'*20)

于 2012-11-23T14:39:21.367 回答