天天向上学习资料下载1、python是面向对象编程的,有句话说的好:世界万物皆为对象,一切对象皆可分类。以99乘法表看做一个要处理的对象,我们可以将要做的事分为两类,一类是显示出一个直角三角形的阶梯框架,另一类是在阶梯中填入等式。
2、先做第一类,图示有9行阶梯,每行表示的等式个数依次增加,如果把每一个框架表示成一个星星,那么就是这样的:
2.2、但有么有别的办法呢,有,我们可以利用while循环,让它计算line -=1,line = 9, 依次减去1,然后打印出每一个结果,直到line为0时停止:
2.3、我们发现跟上面一样,那么我如何让那一系列数字在一行上面表示呢,python中print()默认就是换行打印,如果想要打印的东西显示在一行中可以把print()表示成这样:print(,end=),其中end=中引号内可以添加任何符号,只表示间隔:
2.4、如上面表示的那样,打印出来的数字就在一行中显示了出来。但是问题来了,我如何在既显示9行又在每一行显示多个等式呢。这时候循环体的作用就表现出来了,我么可以采用循环嵌套的方式来表示。
2.5、哈哈,果然出现了直角三角形,但是为什么会在每一行后面多了一个0呢?查看代码发现并没有什么问题,难道是循环体中print(tmp)出现了问题,试一试,还真的,这是因为在嵌套循环体中最后一步tmp=0,在后续print(tmp)时会把tmp=0打印出来,因此只需要将print (tmp)替换为print()即可。
2.6、可是现在是倒三角形,我怎么把它改成正的三角形呢。观察上面我们发现初始值line= 9,如果我么把初始值line= 1,然后让line自增,加到9为止不就可以解决问题了么。试一试:
2.7、结果然并卵,只是把原来的数字颠倒了顺序而已。那该怎么做?我们注意到,在代码第三行我们并没有改变tmp的值,依然是tmp=line,这就使得在嵌套循环中tmp的值始终是在line的基础上+1,然后加至9停止,因此tmp的值应该从1开始,这样就可以得到每一行从1开始的图形。但是,tmp从1开始里面的while循环也是从1开始个人ASP学习,那么这样一来就会每一行都都打印9个数:
2.8、这可不是我们想要的,但是好像离我们的目标更近了,只要把每一行大于行数的数字去掉就可以了。掌管行中数字的是嵌套循环中的while语句,我们注意到tmp10的情况下一直运行,想要实现目标,只需要tmp = line即可,试一试:
3.1、我们注意到,打印每一行中的数字内容的其实是while循环中的自循环中的print()控制的,想要打印第一行,我们只需要用line*tmp即可:
版权声明:本文为 “个人代码云儿美,个人php学习” 原创文章,转载请附上原文出处链接及本声明;
留言与评论(共有 条评论) |