How to make this Python code print blocks of text?

C

chriswilliams

This code prints output in rows like this:
******
******
******
How to make print in blocks like this?
***** ***** ******
***** ***** ******
***** ***** *****

start= int (raw_input("StartTable?"))
upperlimit= int (raw_input ("FinalTable?"))
cycle= start
while cycle <= upperlimit:
........table= cycle
........counter= 0
........while counter < 10:
...............counter= counter + 1
...............print table, "X", counter, "=", counter * table
........cycle= cycle + 1

The program prints multyply tables like this
4 X1 = 4
4 X2 = 8
5 X 1= 5
5 X 2= 10
6 X1= 6
6 X2= 12
etc.


And needs to print like this:
4 X1 = 4.....5 X 1= 5...... 6 X 1= 1
4 X2 = 8..... 5 x 2=10..... 6 X 2= 12

Thanks in advance for any help
 
C

Chris

This code prints output in rows like this:
******
******
******
How to make print in blocks like this?
***** ***** ******
***** ***** ******
***** ***** *****

start= int (raw_input("StartTable?"))
upperlimit= int (raw_input ("FinalTable?"))
cycle= start
while cycle <= upperlimit:
.......table= cycle
.......counter= 0
.......while counter < 10:
..............counter= counter + 1
..............print table, "X", counter, "=", counter * table
.......cycle= cycle + 1

The program prints multyply tables like this
4 X1 = 4
4 X2 = 8
5 X 1= 5
5 X 2= 10
6 X1= 6
6 X2= 12
etc.

And needs to print like this:
4 X1 = 4.....5 X 1= 5...... 6 X 1= 1
4 X2 = 8..... 5 x 2=10..... 6 X 2= 12

Thanks in advance for any help

The reason for it printing on multiple lines is because the print
statement adds a newline character to the end of the existing line.
You can get around this by throwing times table into a list and then
joining them.

for x in xrange(start, (upperlimit+1)):
print '...'.join(['%i X %i = %i'%(x, j, (x*j)) for j in
xrange(1,11)])

Some things to remember, rather use iterators than creating them
yourself with integer variables and incrementing them. Also the
easier syntax for incrementing counters yourself is 'counter += 1'
instead of the uglier 'counter = counter + 1'.
For the string you are printing, look into string formatting rather
than dumping things like 'print table, "X", counter, "=", counter *
table' as "print '%i X %i = %i' % (table, counter, (table*counter))"
is so much neater and easier to comprehend especially if you end up
with a long ass string all muddled together.

HTH,
Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top