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

时间:2015-03-19 01:16:00

标签: python while-loop

#!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循环引起的,它在打印出来之后增加了一个额外的空间。感谢。

1 个答案:

答案 0 :(得分:1)

可在此处找到更多信息:

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

这可以通过import 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)])