概述
如上节课所说,for循环是明确循环次数的迭代。咱们先来看一下各种编程语言下的for循环:
JAVA
C++
再来看看Python:
同样的执行结果,Python的代码行数最少,也最简洁。
广告做完了,言归正传。我们来看看Python for循环的语法:
其中:
<iterable> # 是指一切可以迭代的,如:字符串、列表、元组、集合、字典等
<var> # 被重复赋值的变量
<statement(s)> # 程序块
上面我们说了for要有明确的循环次数,那么字符串、列表这些数据类型,for是如何判断结束的呢?
iter()
iter()是用来生成迭代器的内部函数,咱们来看一下它处理字符串的过程:
可以看到itr已经是迭代器类型了,我们接着看它的内容:
next()也是Python内部函数,用于返回下一个迭代器的内容。第一次执行next(itr)返回的字符串“Hello”中的第一个字符“H”,接下来依次返回“Hello”后续的每一个字符。
通过上面的读取,我们已经完成了字符串“Hello”的全部读取,那么接下来我们再进行读取,会发生什么呢?
上面已经返回了迭代器的所有值,则后续再next()调用将引发StopIteration异常。从迭代器获取值的任何进一步尝试都将失败。同时迭代器的取值只能从一个方向的迭代器获取值。你不能后退。没有内部函数prev()。
通过这些我们就能理解for循环在处理字符串、列表等数据类型的时候是如何工作的了吧?
我们看看for循环下的字符串:
由于列表、元组、字典这些数据类型我打算后面讲,所以就不能一一地展开谈了,看一个列表的例子,感受一下:
不错吧?由于篇幅的原因,原谅我没有加入更多名字,你可以自行尝试,用逗号隔开就好。
range()
range()可以自动创建一个整数类型的列表,它的语法是这样滴:
range( [start,] stop [,step] )
方括号是可选的,就是不一定需要:
start # 开始数字
stop # 结束数字
step # 步长
上面我们的程序还记得吗?
这里的调用只给了stop结束,range()给定的缺省start是0,这里一定要
特别注意:stop所给定的结束数字并不包含它自己。
比如上面的range(6)的结束数字是5,而不是6,这一点大家一定要记住!切记,切记!
那么如果要得到1到100的数字列表怎么表达呢?来,看这里:
range(1, 100+1)
可能我用100+1逻辑上是不是更明白一些。
如果我想得到10以内的偶数怎么办?这就要用到了步长
不用步长能不能得到10以内的偶数呢?答案是肯定的,一个“资深的”大叔。。。额,是资深的程序员可以有一百种方法给出你想要的结果。我这只能再给一种。
搞定!打完收工。是不是很简单?只是用了x是否能被2整除就解决了?Python很酷,我爱Python!
这是for循环嵌套的调用方法,可以打印三角形(额,这是上学那会入门教育的基本功,不敢忘)。
细心的你会不会发现变量j并没有用到后面的程序里?这种情况在Python里是可以丢弃的,对,丢弃,就是不用变量了,用下划线替代,表示没用的意思:
来,咱们最后来个九九乘法表,这一节的课就讲完了。
程序很短,可自行理解。
下节课我们要讲while循环,之后我们会回到列表、元组、集合和字典的讲解上来。
请持续关注,你们的鼓励才是我讲下去的动力。
最后
以上就是细心往事为你收集整理的for循环步长为2 matlab_第012篇:for循环的全部内容,希望文章能够帮你解决for循环步长为2 matlab_第012篇:for循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复