今天是中考第三天,祝莘莘学子不忘初心、学业有成。 今天一起学习做道题目,就是在屏幕上打印99乘法表。效果如下:
一、题目分析
该题一共有9行,所以我们可不可以用上次用过的print函数直接打印呢。当然可以的,试试效果吧!
1.笨办法打印99乘法表
# 打印99乘法表
print("1x1=1")
print("1x2=2 2*2=4")
print("1x3=3 2x3=6 3x3=9")
print("1x4=4 2x4=8 3x4=12 4x4=16")
print("1x5=5 2*5=10 3x5=15 4x5=20 5x5=25")
print("1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36")
print("1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49")
print("1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64")
print("1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81")
通过努力,我们得到了想要的效果。仔细一看,没有对齐。为什么呢?因为有的数相乘了之后得到结果是2位数,所以会产生没有对齐的情况。
我们要坚信,别人能够做到,我们一定也能做到。这里引进两个概念。
1、空格键是空一个英文字母的距离,tab键既有空格功能又有和上面对齐的功能,所以它空的间距是不固定的。上面的代码中空格用tab代替,就可以实现对齐。
2、tab用什么来表示呢。是直接输入tab吗?不是的。这就涉及到Python中的转义字符。所谓转义字符,就是在python中有的“字”不能直接输出,需要加“\”才能输出,下面是常用的需要转移的字符:
字符 | 转义字符 |
\ | \ \ |
’ | ’ |
" | " |
退格(Backspace) | \b |
换行 | \n |
tab键 | \t |
为什么会这样呢?我的理解是因为有些字符键盘上没有或者与已有的产生冲突。例如print函数的内容是用引号包围起来的,如果引号里面又有引号,计算机就不能正确判断出包围的是那些内容。
这样我们得到了一段修改后看上去比较乱,但是结果比较满意的代码
print("1x1=1")
print("1x2=2\t2x2=4")
print("1x3=3\t2x3=6\t3x3=9")
print("1x4=4\t2x4=8\t3x4=12\t4x4=16")
print("1x5=5\t2x5=10\t3x5=15\t4x5=20\t5x5=25")
print("1x6=6\t2x6=12\t3x6=18\t4x6=24\t5x6=30\t6x6=36")
print("1x7=7\t2x7=14\t3x7=21\t4x7=28\t5x7=35\t6x7=42\t7x7=49")
print("1x8=8\t2x8=16\t3x8=24\t4x8=32\t5x8=40\t6x8=48\t7x8=56\t8x8=64")
print("1x9=9\t2x9=18\t3x9=27\t4x9=36\t5x9=45\t6x9=54\t7x9=63\t8x9=72\t9x9=81")
2.利用循环函数打印
1、在我们尝到了喜悦是,又觉得这样太累了。如果数字多,比如99*99乘法表,需要输入大量的。
让我们再来看看乘法表,看看有没有规律。
总的来说,乘法表分为9行9列。每一行的第二个数是不变的,也就是行号,第一个数字是从1开始,到行号结束。
2、接下来介绍一个循环函数for(in range)。语法格式如下
for 迭代变量 in range(开始的整数,结束的整数[不包括本数]):
代码块
所以代码可以改为
for i in range(1, 10):
for j in range(1, i+1):
print("{}x{}={}\t".format(j, i, i*j), end='')
print()