标签:python
程序地址:http://www.cheemoedu.com/exercise/2
问题描述:
打印乘法表如图:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
我的思路:
第一次循环范围为range(1,10),因为每次都是从i开始,直到i*i结束,所以第二次循环范围为range(1,i+i),然后格式化输出结果,此时还没有达到乘法表的结果而是一行输出,只需再判断一下第一个数是否等于第二个数,如果等于,就说明此行已结束,换行即可;
我的代码:
for i in range(1,10): for j in range(1,i+1): print "%d*%d=%d " % (i,j,i*j), if i==j: print "\n"
效果图:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
示例代码:
def fun(): for line in xrange(1,10): for row in xrange(1,line + 1): s=str(line) + ‘ * ‘ + str(row) + ‘ = ‘ + str(line * row) print s.ljust(12),‘|‘, print ‘‘ fun()
效果图:
>>>
1 * 1 = 1 | 2 * 2 = 4 | 3 * 3 = 9 | 4 * 4 = 16 | 5 * 5 = 25 | 6 * 6 = 36 | 7 * 7 = 49 | 8 * 8 = 64 | 9 * 9 = 81 |
>>>
示例代码有问题,是错误的;
标签:python
原文地址:http://jmbzs.blog.51cto.com/9449309/1782872