ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 习题 32: 循环和列表 现在你应该有能力写更有趣的程序出来了。如果你能一直跟得上,你应该已经看出将“if 语句”和“布尔表达式”结合起来可以让程序作出一些智能化的事情。 然而,我们的程序还需要能很快地完成重复的事情。这节习题中我们将使用 for-loop (for 循环)来创建和打印出各种各样的列表。在做的过程中,你会逐渐明白它们是怎么回事。现在我不会告诉你,你需要自己找到答案。 在你开始使用 for 循环之前,你需要在某个位置存放循环的结果。最好的方法是使用列表(list),顾名思义,它就是一个按顺序存放东西的容器。列表并不复杂,你只是要学习一点新的语法。首先我们看看如何创建列表: ~~~ hairs = ['brown', 'blond', 'red'] eyes = ['brown', 'blue', 'green'] weights = [1, 2, 3, 4] ~~~ 你要做的是以 [ (左方括号)开头“打开”列表,然后写下你要放入列表的东西,用逗号隔开,就跟函数的参数一样,最后你需要用 ] (右方括号)结束右方括号的定义。然后 Python 接收这个列表以及里边所有的内容,将其赋给一个变量。 Warning 对于不会编程的人来说这是一个难点。习惯性思维告诉你的大脑大地是平的。记得上一个练习中的 if 语句嵌套吧,你可能觉得要理解它有些难度,因为生活中一般人不会去像这样的问题,但这样的问题在编程中几乎到处都是。你会看到一个函数调用另外一个包含 if 语句的函数,其中又有嵌套列表的列表。如果你看到这样的东西一时无法弄懂,就用纸笔记下来,手动分割下去,直到弄懂为止。 现在我们将使用循环创建一些列表,然后将它们打印出来。 <table class="highlighttable"><tbody><tr><td class="linenos"> <div class="linenodiv"> <pre> 1&#13; 2&#13; 3&#13; 4&#13; 5&#13; 6&#13; 7&#13; 8&#13; 9&#13; 10&#13; 11&#13; 12&#13; 13&#13; 14&#13; 15&#13; 16&#13; 17&#13; 18&#13; 19&#13; 20&#13; 21&#13; 22&#13; 23&#13; 24&#13; 25&#13; 26&#13; 27&#13; 28&#13; 29</pre> </div> </td> <td class="code"> <div class="highlight"> <pre>the_count = [1, 2, 3, 4, 5]&#13; fruits = ['apples', 'oranges', 'pears', 'apricots']&#13; change = [1, 'pennies', 2, 'dimes', 3, 'quarters']&#13; &#13; # this first kind of for-loop goes through a list&#13; for number in the_count:&#13; print "This is count %d" % number&#13; &#13; # same as above&#13; for fruit in fruits:&#13; print "A fruit of type: %s" % fruit&#13; &#13; # also we can go through mixed lists too&#13; # notice we have to use %r since we don't know what's in it&#13; for i in change:&#13; print "I got %r" % i&#13; &#13; # we can also build lists, first start with an empty one&#13; elements = []&#13; &#13; # then use the range function to do 0 to 5 counts&#13; for i in range(0, 6):&#13; print "Adding %d to the list." % i&#13; # append is a function that lists understand&#13; elements.append(i)&#13; &#13; # now we can print them out too&#13; for i in elements:&#13; print "Element was: %d" % i&#13; </pre> </div> </td> </tr></tbody></table> ### 你应该看到的结果 ~~~ $ python ex32.py This is count 1 This is count 2 This is count 3 This is count 4 This is count 5 A fruit of type: apples A fruit of type: oranges A fruit of type: pears A fruit of type: apricots I got 1 I got 'pennies' I got 2 I got 'dimes' I got 3 I got 'quarters' Adding 0 to the list. Adding 1 to the list. Adding 2 to the list. Adding 3 to the list. Adding 4 to the list. Adding 5 to the list. Element was: 0 Element was: 1 Element was: 2 Element was: 3 Element was: 4 Element was: 5 $ ~~~ ### 加分习题 1. 注意一下 range 的用法。查一下 range 函数并理解它。 1. 在第 22 行,你可以可以直接将 elements 赋值为 range(0,6),而无需使用 for 循环? 1. 在 Python 文档中找到关于列表的内容,仔细阅读以下,除了 append 以外列表还支持哪些操作?