让我们试着打印一个九九乘法表,来运用一下我们之前学到的内容。
九九乘法表通常是长这样的。
很自然的想到需要2个数字,分别是从1到9,然后输出两个数字的乘积就可以。
代码很简单,长这样:
for a in range(1,10):
for b in range(1,10):
print ("%d*%d=%d " %(a,b,a*b))
就是让a从1变到9,b也从1变到9,然后输出2个数字的结果。
运行的结果是这样的
这个和我们的需求还有点差距。我们需要调整一下。
首先,每次b的循环不要让它换行。每次a的循环的时候再换行。
for a in range(1,10):
for b in range(1,10):
print ("%d*%d=%d " %(a,b,a*b) , end="")
print ("")
因为python默认在每个print语句后面加上一个回车,所以我们在第一个print后面加了一句话end="",告诉Python不要加上这个回车,而是加上一个空的字符。然后我们再增加一个print语句,告诉python换一行。
运行的效果是这样的:
这个时候表格变成了一个99 的表格,比之前的样子要好一些了。但是没有对齐,比如12=2 和 7*7=49 的长度就不一样。我们再调整一下print语句里面的参数,变成
print ("%d*%d=%d\t" %(a,b,a*b),end ="")
这个\t表示的是在输出的最后跟上一个tab符号,tab符号是可以很准确的控制字符的位置的(用过WORD的同学们一定知道用空格对齐文本是很痛苦的,用TAB键就可以很轻松)。再运行一次:
可以看到已经对的很整齐了。但是离最终的效果还差一点,我们要变成三角形的形状。看一下最终图片的规律,表格的第几行就有几列,而不是每一行都是9列。那我们只要改动一下b的那个for语句就可以
for a in range(1,10):
for b in range(1,a+1):
print ("%d*%d=%d\t" %(a,b,a*b),end ="")
print ("")
把10换成a+1,这样a是几,b最多也就到几。运行的结果是这样的