python绘图循环_python3绘图程序教学:巢状循环(十六)

看到这个名称应该很容易就可以猜到它的意思。没错!就是多层循环,也就是循环中还有循环。我们先看第一个例子:

for i in range(1, 6, 1):

for j in range(1, 3, 1):

print(i, j)

执行这一段程序码会看到下列结果:

1 1

1 2

2 1

2 2

3 1

3 2

4 1

4 2

5 1

5 2

读者可以先试着想想看,为什么会得到这样的结果?了解程序码的方法很简单,就是把自己当成电脑,一行一行执行程序。在执行的过程中,把变数的值写在纸上,然后观察它们如何随着程序执行的过程而改变。

巢状循环其实很像时钟,请参考图2。当秒针从0转到59的时候,分针才会加1,然后秒针又从0开始。也就是说,当秒针转一圈,分针才加1。用巢状循环来比喻,秒针就是内层循环,分针就是外层循环。当内层循环执行一轮之后,外层循环才会进到下一项。

图2 巢状循环的原理就像时钟的秒针和分针

了解巢状循环的原理之后,现在回头看前面的程序码范例。外层循环的索引变数是i,它会从1递增到5(因为我们设定range(1, 6, 1))。内层循环的索引变数是j,它会从1变到2(因为我们设定range(1, 3, 1))。当j从1变到2之后,i就会加1,然后j又从1开始,依照这种方式持续下去,直到外层循环结束。最后就看到前面列出的结果。

补充说明:关于巢状循环的索引变数

循环的索引变数习惯上会取名为i。如果是巢状循环,每一层循环的索引变数不可以有相同的名称,因此习惯上我们会把第二层循环的索引变数取名为j,第三层则取名为k,依此类推。

现在来看一个巢状循环的典型范例-九九乘法表。九九乘法表的顺序如下:

1 x 1 = 1

1 x 2 = 2

1 x 9 = 9

2 x 1 = 2

2 x 2 = 4

2 x 9 = 18

9 x 9 = 81

观察每一个式子被乘数的变化,当乘数从1递增到9之后,被乘数才会加1。被乘数加1之后,乘数又从1开始。这就是巢状循环的模式,所以九九乘法表可以利用以下巢状循环来产生:

for i in range(1, 10, 1):

for j in range(1, 10, 1):

print(i, 'x', j, '=', i*j)

只要短短三行程序码,就可以显示81行的九九乘法表,是不是很神奇?!印度还流行19乘19的乘法表,只要修改以上程序码中的二个数字,就可以产生19乘19的乘法表,完全不需要增加任何程序码,读者可以试看看。

最后再看一个例子。如果我们想用程序码显示如下结果,也就是数字n要显示n次,该怎么做?首先我们需要一个循环来控制数字显示的次数。另外还需要一个循环让数字递增,也就是从1变到9。比较特别的是,这个递增的数字,也决定了数字显示的次数,例如2显示二次,3显示三次。读者可以先试看看自己想出答案。

1

22

333

4444

55555

666666

7777777

88888888

999999999

以下就是解答。我们需要控制pr​​int()让它不要换行,这需要用到end参数。

for i in range(1, 10, 1):

for j in range(0, i, 1):

print(i, end='')   # 设定end参数让print()不要换行

print()   # 每印完一个数字要换行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值