所以目前我的代码是
print(" 1 2 3 4 5 6 7 8")
print(game_string + "| | | | | | | | |")
print("| | | | | | | | |")
当我运行它时,它变成
1 2 3 4 5 6 7 8
% % %| | | | | | | | |
| | | | | | | | |
(当然分为3行) 我想让它成为| %| | %| | |等等,每次运行代码时%都在随机位置。
我用来制作混洗列表的代码:
import random
l = list(" % % % ")
random.shuffle(l)
s = ''.join(l)
答案 0 :(得分:2)
我会稍微改变一下这个问题, 将演示文稿与数据分开 。
<强>实施强>
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
| |%|%| | | |%| |
|%| | | | |%|%| |
| |%| | | |%| |%|
| |%| |%| | |%| |
答案 1 :(得分:0)
您不会改变包含感兴趣的所有字符的字符串。以下是您可能采取的方法的一个示例:
#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_string
的内容和给定的字符串。这里没有洗牌。您可能希望使用python 查找字符串连接以了解有关此内容的更多信息,例如:在http://www.pythonforbeginners.com/concatenation/string-concatenation-and-formatting-in-python