习题32:循环和列表
for循环其实在各种编程语言里都有,几乎是实现程序智能化的基础,之前在R语言里的for循环看起来和Python的for循环也看起来没什么不同。
注释:append函数
1.append函数用于在list列表的末尾添加新的对象,用法就和上面的例子里一样。
2.列表中包含列表,即可创建二维列表:[[1,2,3],[4,5,6]].
3。range函数会从第一个数到最后一个数,但不包含最后一个数。这种含首不含尾的方法是循环中极为常见的一种用法
巩固练习:
- 1.查一下range函数的使用
就是一个返回可迭代对象的函数,具体见:
https://www.runoob.com/python3/python3-func-range.html - 2.在第22 行,可以直接将elements赋值为range(0,6),而无须使用for循环么?
不行,range函数返回的不是列表,不用for循环的化,结果是一个对象,用了for循环,才会变成6个对象 - 3.在python文档中找到关于列表的内容,除了append函数还可以对列表进行哪些操作?
那是相当的多,增删改查,各种操作,详见:
https://www.runoob.com/python3/python3-list.html
习题33:while循环
while循环也和R语言一样,但有几个点之前没有注意或者说没有放在心上:
while循环和for类似,也是去检查一个波尔表达式的真贱,不一样的是它下面的代码不是只执行一次,而是执行完再跳回while的顶部,如此重复,知道表达式为false为止。
其次,因为while可能会无限循环,因此:
- 1.尽量少用while循环,大部分用for循环是更好的选择
- 2.重复检查你的while语句,确定你测试的布尔表达式最终会变成false
巩固练习:
1.将这个while循环改成一个函数,将测试条件(i<6)中的6换成一个变量。
2.使用这个函数重写你的脚本,并用不同的数测试
3.为函数添加另一个参数,这个参数用来定义第8行的+1,这样你就可以让它任意递增了
4.再使用给函数重写一遍这个脚本,看看效果如何
5.使用for循环和range把这个脚本再写一遍。还需要中间的递增操作么?如果不去掉它,会有什么样的结果?如果不去掉中间的递增操作,会出现一点错误:
注意:程序可能运行中停不下来,这时按着Ctrl+C就可以了。