Python 如何在打印消息之间放置随机的.shuffle(字符串)?

Python 如何在打印消息之间放置随机的.shuffle(字符串)?,python,Python,所以现在我的代码是 print(" 1 2 3 4 5 6 7 8") print(game_string + "| | | | | | | | |") print("| | | | | | | | |") 当我运行它时,它就变成了 1 2 3 4 5 6 7

所以现在我的代码是

print("   1     2     3     4     5     6     7     8")
print(game_string + "|     |     |     |     |     |     |     |     |")
print("|     |     |     |     |     |     |     |     |")
当我运行它时,它就变成了

1     2     3     4     5     6     7     8
% % %|     |     |     |     |     |     |     |     |
|     |     |     |     |     |     |     |     |
(当然分为三行) 我希望它变成|%|%| | | | | | | | |等,每次我运行代码时,%都会出现在随机的地方

我用来制作无序列表的代码:

import random

l = list(" % % % ")

random.shuffle(l)

s = ''.join(l)

您没有对包含所有感兴趣的字符的字符串进行洗牌。以下是您可能采取的方法的一个示例:

#import packages
import random

#create list of all characters that are to be mixed up
l = list("%%%|||||||||")
#do shuffle
random.shuffle(l)
#output shuffled list to console
print( ''.join(l) )
这将在每次洗牌列表时打印不同的序列

您可以将其存储在变量中,而不是将无序字符串打印到屏幕上,例如

game_string = ''.join(l)
注意

print(game_string + "|     |     |     |     |     |     |     |     |")

只需打印两个串联字符串,即变量
game\u string
的内容和给定字符串。这里不涉及洗牌。您可能希望使用python查找字符串连接以了解更多信息,例如,在

我将以稍微不同的方式处理此问题,将表示与数据分离

实施

def foo(n):
    import random
    game_string = list('%%%' + ' '*(n-3))

    yield ' '.join(map(str,range(1,n + 1)))
    while True:
        random.shuffle(game_string)
        yield '|'.join(game_string)
演示

>>> for _, row in zip(range(5), foo(10)):
    print row


1 2 3 4 5 6 7 8 9 10
 | |%|%| | | |%| | 
 |%| | | | |%|%| | 
 | |%| | | |%| |%| 
 | |%| |%| | |%| | 

您知道如上所述,您使用的命令
print()
是什么吗?请更精确地说明您想要实现什么以及为什么您的代码不能产生期望的结果。一旦我运行代码打印(game_string+“| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |等),则乱。我理解为什么会发生这种情况,但我如何才能解决它。我是否需要添加更多代码以使其按我希望的方式运行?希望这能让它更清楚一点。请检查我的扩展答案。如果你有更多的问题,请考虑打开一个新的。如果其中一个答案解决了您的问题,请
接受它,将此问题标记为stackoverflow已解决。抱歉!我忘了说线路是固定的。所以它必须是这样的(线之间有随机的“%”或“”)1 2 3 4 5 6 7 8 | | | | | | | | | | | | | | | ||