这个系列其实是想给非计算机专业的人一个python的入门指导,已经写了3篇,这篇拖了好久了。我开始觉得学编程真的很难,计算机有些方面的知识真是常人所不能理解的,仅仅靠这几篇文章肯定是做不到入门的,如果各位真想学python,还是希望各位能去看更多python的例子,当然我这个系列的文章还是会继续写下去的,我尽自己可能不让本系列变成《python从入门到放弃》。
在上一篇文章中我们讲到了选择和循环,这次我来讲下选择和循环语句更高级的用法。提前剧透下,本次课程没有新内容,只是对上篇文章的回顾和进阶,选择和循环语句的嵌套使用。
首先我们来举个例子说明循环语句是如何嵌套判断语句的。 我这里抛出一个简单的问题————输入1-9里面所有能被3整除的数!如果你程序写对了,很明显只会在屏幕上输出 3 6 9这3个数字。当然,这是后话,我们先来看看怎么写代码实现这个功能吧! 首先程序如何判断一个数能否被3整除,还记得整除的概念吗?就是除完后没有余数(更确切的说是余数为0),在第二篇文章中我们已经介绍过一个求余数的运算符号了 %,只要n%3==0,那么n肯定是可以被3整除的,代码如下。
print n #那么输出n
接下来我们需要做的就是把n从1循环到9了,还记得循环的语法是什么样的吗?
for n int range(1,10):if n%3 == 0:
print n
多层循环嵌套,我觉得最好的例子就是乘法表了,想想看我们小学学的成乘法表是什么样的? 第一行是1到1,第二行 1到2……第8行 1到8,第n行是1到n,其实每一行就是一个1-n的循环。每一行的循环代码如下
for i in range(1,10): #这是第9行的循环... #这里暂时省略具体内容
我们只需要在上面加一层对于行的循环就可以了,我猜如果你没学过编程的话,这个地方肯定很难理解咯。哎,看我我也没办法,只能奉上一句心灵鸡精『多思考』。 所以我们来看99乘法表的具体代码。
for i in range(1,10): #这里是从1到9行for j in range(1, i+1): #这里是每行的内容,第i行的内容只是从1到i而已。
print (i*j)
如果你自己运行了这段代码,你可能会感觉我在骗你,你们家乘法表张这样?果然你们程序员没一个好东西。。。 等等,你仔细看看,是不是所有算出来的数字都对了,只不过一行只有一个数字。原谅我这个地方在之前的文章中没有讲到,这里我就稍带提一下,python输出的时候默认都是要换行的,你只需要在print语句后面加个逗号 , 就不会换行了, 但要注意,每输出乘法表的一行是需要换一行的,所以还需要额外的一个print语句,改进后的代码如下。
for i in range(1,10):for j in range(1, i+1):
print (i*j), #注意这里只比原来多了一逗号,英文的逗号
print "" #绝对注意这要和上面的for对齐,你可以试试不和for对齐会怎么样(偷笑)
给大家看个输出内容和99乘法表一毛一样的代码,这里涉及到了python的格式化输出,我暂时不决定讲这个内容,有兴趣可以自己了解下。 我们先看效果,再看代码。
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
代码如下
for i in range(1,10):for j in range(1, i+1):
print ("%d*%d=%d"%(j,i,i*j)), #格式化输出在这里实现。
print ""
告诉大家一个不幸的消息,本篇文章内容到这里就结束了,最后再抛几个问题给大家思考下。
1.if可以嵌套for吗?可以嵌套while循环吗?
2.难道只能嵌套两层吗?3层 4层 5层可不可以?
一般的文章在这个时候会告诉大家『这里我就不公布答案了,大家可以去尝试下』,然而我这里我偏要告诉大家答案很明显都是yes yes,你试不试就和我无关了。
剧透下,下篇文章的内容是函数(function),更新时间是 看我心情。