四行python代码,写一个九九乘法表
具体代码如下:
下面我来解释一下该程序的所有代码。程序一共只有4行,先从第一行的for循环语句开始。
01 for i in range(1,10):语句
这条for循环语句遍历1到9,其中range(1,10)返回一个列表,列表中有数值1到9共九个成员,变量i依次接收成员的值,可以在其后的语句块中使用它引用列表中的成员。
下面是打印这个列表中的每个成员的事例:
02 for j in range(1,i+1):语句
这是上一条for语句的第一条语句,它与上一条语句很相似,但有两个不同:
1、变量为j,而不是i。这是因为变量i在后面还需要用到,所以需要定义一个不同的变量名,j是另一个经常用到的用作循环变量名的标识符。
2、range(1,i+1) 函数中的第2个参数是 i+1 而不是10,这是因为在九九加法表中,如果两个加数相同,只显示一个,较小的加数显示在前面。比如只显示1+2=3,而不显示2+1=3,
所以每次循环,第1次只需要依次遍历到1,第2次只需要遍历到2、第3次……直到第9次需要遍历到9即可,遍历终点正是上一个循环变量 i 的值。
由于range(参数一,参数二) 返回的列表成员中,包含参数一,但不包含参数二(只包含到参数二减1,所以要想遍历到9,需要提供参数10,要想遍历到i,需要提供参数 i+1。
03 print(f'{j}+{i}={i+j}',end='\t')语句
这是第三行的打印语句,是整个程序输出的关键。print是个函数,它的功能是将指定的数据输出打印到IDLE中。
在本例中,print接收了两个参数,第一个参数是要打印的主要字符串内容,第二个以end=开头的参数表示在打印了前面的内容之后再追加打印的内容,这里追加的内容是'\t',这是一个转义字符,表示制表符,制表符的功能就是用来对齐的(它在Python IDLE中的标准宽度是8个字符,在记事本中是14个字符,只要它前面的字符长度少于一个标准字符,那么它的后一字符都将从下一标准宽度开始,可以按Tab键在Python IDLE和记事本等编辑器中输入制表符)。
本例中print函数的第一个参数是个格式化字符串。
前缀f的两个单引号包围的字符串中,大括号{}包围的内容表示这一个表达式,会将其结果计算之后再替换掉大括号中的内容,所以对于第1次循环时,i和j的值都为1,f'{j}+{i}={i+j}' 就表示 f'{1}+{1}={1+1}',将f和大括号去除,以及计算=右边的值就是 '1+1=2' 了。
由于第1次循环时i的值为1,所以内层循环只运行一次就结束了,它会执行第4条语句。
04 print()语句
第4条语句是个没有参数的print函数,表示打印一个空行。在九九加法表中,每打印完1个数字的加法表之后,需要换行再显示下一个数字的加法表。
05 整体流程解析
首先是外层循环开始,i从1遍历到9,第1次循环时 i 等于1,然后开始内层循环,从1开始,到1结束,即只循环1次,j=1,内层循环体中打印1+1=2。内层循环结束,再打印一个空行,然后开始外层循环第2次循环。
第2次外层循环,i等于2,内层循环j从1遍历到2,先打印1+2=3,追加一个制表符,再打印2+2=4,内层循环结束,打印一个空行,然后开始第3次外层循环。
第3次外层循环,i等于3,内层循环j从1遍历到3,所以依次打印1+3=4、制表符、2+3=5、制表符、3+3=6,内层循环结束,打印一个空行,然后开始第4次外层循环。
第4次外层循环,i等于4,可依上文类推到9的情况。
举一反三
知道了上述实例的运行流程,所以九九乘法表的编写也就很容易了,只需要将第三行的两个加号,替换成乘号就可以了。
在Python中,乘号运算用*表示。显示的字符串中的乘号可以用字母x表示。
下面是九九乘法表的代码及输出示例:
当然,也可以打印11到19的乘法表,只需要改动循环参数即可:
注:由于11到19的所有乘法结果都是3位数,加数也都是2位数,加上运算符,共9个字符,已经超过了Python IDLE的8个字符的标准制表符宽度,可以只用空格隔开,制表符隔开就显得太大了。
结语
根据本文的内容,是否可以自己制作其他口诀表了呢?当然,具体使用时,已经有现成的资源(包括加法口诀表、乘法口诀表、减法口诀表、...)可以免费下载。