[Tutor] font/text in pygame

D. Hartley denise.hartley at gmail.com
Thu Apr 28 02:45:33 CEST 2005


Jacob (et al):

Unfortunately at this point I'm rendering the text, not printing it
(using text = font.render).  So I need to know if there is a hard
character or something I can type, since 50*" " (space) isnt lining
them up right.

Thanks!
~Denise

On 4/27/05, Jacob S. <keridee at jayco.net> wrote:
> >> def displaybalance():
> >>     for score, name in mylist:
> >>         slip = 30 - len(name)
> >>         slip_amt = slip*" "
> >>         print "%s%s%s" % (name,slip_amt,score)
> >>
> >> (I did this with the print command to make sure it would produce what
> >> I wanted, three strings for the three sample scores I put in this
> >> dummy list).
> >
> > Yup, you did that. And actually, what happened was that string formatting
> > was first used to create a string, and then this string was sent to the
> > print command, which displayed it. Your last line is equivalent to:
> >
> > foo = "%s%s%s" % (name,slip_amt,score)
> > print foo
> >
> > The only "magic" thing you can only do with print is the "print a, b, c"
> > syntax.
> 
> Uck.
> 
> Try this.
> 
> for score, name in mylist:
>    name = name.ljust(30)
>    print "%s%s" % (name,score)
> 
> Or, if you prefer...
> 
> print "\n".join("%-30s%s"%(name,score) for name,score in mylist)
> 
> If you don't have python 2.4
> 
> print "\n".join([---]) # with the hyphens replaced with the above
> comprehension
> 
> Oh, and there is another cool thing you can do with print.
> First off, print uses sys.stdout, so if you change it, print changes where
> it prints.
> Second, if you use the syntax print >>output,item0,item1,item2
> you can redirect manually where things are printed to. output has to be an
> object which has a write method.
> 
> i.e.
> 
> a = open("myfile.txt","w")
> 
> b = "This is the string I want to print out."
> print >>a,b
> a.close()
> 
> gives you a file in the current directory with the filename "myfile.txt"
> with the contents "This is the string I want to print out."
> 
> Okay, I'm done again,
> Jacob
> 
>


More information about the Tutor mailing list