基本 python-while 循环在随机卡片生成器中打印出额外的 space

Basic python-while loop prints out extra space in random card generator

#!usr/bin/python
import random
seg1='''_________'''
seg2='''|       |'''
seg3a="| Ace   |"
seg32="|  2    |"
seg33="|  3    |"
seg34="|  4    |"
seg35="|  5    |"
seg36="|  6    |"
seg37="|  7    |"
seg38="|  8    |"
seg39="|  9    |"
seg310="| 10    |"
seg3jack="| Jack  |"
seg3queen="|Queen  |"
seg3king="| King  |"
seg4='''|  of   |'''
seg5s="| Spade |"
seg5h="| Heart |"
seg5c="| Clubs |"
seg5d="|Diamond|"
seg6='''|       |'''
seg7='''|_______|'''
a=[seg3a,seg32,seg33,seg34,seg35,seg36,seg37,seg38,seg39,seg310,seg3jack,seg3queen,seg3king]
b=[seg5s,seg5h,seg5c,seg5d]
count=0
count1=0
print seg1*13,'\n',seg2*13#,#'\n'
while count<=12:
    c=random.choice(a)
    print c,
    count+=1
print '\n',seg4*13,'\n'
while count1<=12:
    d=random.choice(b)
    print d,
    count1+=1
print '\n',seg6*13,'\n',seg7*13

您好。我正在尝试制作这个程序,它应该并排打印出 13 张随机卡片,但它的格式真的很奇怪。我知道这是由 while 循环引起的,它在打印出一些东西后添加了一个额外的 space 。谢谢

可在此处找到更多信息:

How do I keep Python print from adding newlines or spaces?

这可以通过 importing sys 然后使用:

应用于您的代码
while count<=12:
    c=random.choice(a)
    sys.stdout.write(c)
    count+=1
sys.stdout.flush()

和另一个 while 循环的等价物。

旁注:考虑阅读其他人的一些 python 代码。 Python 用户喜欢让它简短而亲切,我这样做让我受益匪浅——至少在编码快捷方式方面是这样。事实上,您也可以将整个循环替换为:

print "".join([random.choice(a) for i in range(13)])