笨办法学Python 习题 32: 循环和列表

笨办法学Python 习题 32: 循环和列表,第1张

概述笨办法学Python 习题 32: 循环和列表

现在你应该有能力写更有趣的程序出来了。如果你能一直跟得上,你应该已经看出将“ if 语句”和“布尔表达式”结合起来可以让程序作出一些智能化的事情。

然而,我们的程序还需要能很快地完成重复的事情。这节习题中我们将使用 for-loop ( for 循环)来创建和打印出各种各样的列表。在做的过程中,你会逐渐明白它们是怎么回事。现在我不会告诉你,你需要自己找到答案。

在你开始使用 for 循环之前,你需要在某个位置存放循环的结果。最好的方法是使用列表 (List) ,顾名思义,它就是一个按顺序存放东西的容器。列表并不复杂,你只是要学习一点新的语法。首先我们看看如何创建列表:

# -*- Coding:utf-8 -*-hairs = ['黑色','黄色','白色']eyes = ['棕色','黑色','绿色']weights = [1,2,3,4,5]

你要做的是以 [ (左方括号)开头“打开”列表,然后写下你要放入列表的东西,用逗号隔开,就跟函数的参数一样,最后你需要用 ] (右方括号)结束右方括号的定义。然后 Python 接收这个列表以及里边所有的内容,将其赋给一个变量。

Warning

对于不会编程的人来说这是一个难点。习惯性思维告诉你的大脑大地是平的。记得上一个练习中的 if 语句嵌套吧,你可能觉得要理解它有些难度,因为生活中一般人不会去像这样的问题,但这样的问题在编程中几乎到处都是。你会看到一个函数调用另外一个包含 if 语句的函数,其中又有嵌套列表的列表。如果你看到这样的东西一时无法弄懂,就用纸笔记下来,手动分割下去,直到弄懂为止。现在我们将使用循环创建一些列表,然后将它们打印出来。

# -*- Coding:utf-8 -*-the_count = [1,5]fruits = ['苹果','橙子','梨','杏子']change = [1,'便士', 2,'1角硬币','两角五分']#List可以储存数字类型for number in the_count:    #从the_count列表中循环取值    print "This is count %d" % number#List可以储存字符串类型for fruit in fruits:    #从fruits列表中循环取值    print "其中一个水果: %s" % fruit# List可以混合储存数字和字符串类型# 注意我们不得不使用 %r 因为我们不知道用户输入的信息for i in change:    #从change李彪中循环取值    print "I got %r" % i# 我们也可以建立列表,一开始从空开始elements = []   #建立空列表elements# 然后用 0-5循环函数for i in range(0,6):   #循环去0-5数字    print "Adding %d to the List." % i    # 从函数中增加列表    elements.append(i)  ##现在我们能输出这些信息for i in elements:    print "Element was: %d" % i

结果:

This is count 1This is count 2This is count 3This is count 4This is count 5其中一个水果: 苹果其中一个水果: 橙子其中一个水果: 梨其中一个水果: 杏子I got 1I got '\xe4\xbe\xbf\xe5\xa3\xab'I got 2I got '1\xe8\xa7\x92\xe7\xa1\xac\xe5\xb8\x81'I got 3I got '\xe4\xb8\xa4\xe8\xa7\x92\xe4\xba\x94\xe5\x88\x86'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: 0Element was: 1Element was: 2Element was: 3Element was: 4Element was: 5

加分习题

1. 注意一下 range 的用法。查一下 range 函数并理解它。

    range()能返回一系列连续增加的整数,它的工作方式类似于分片,可以生成一个列表对象。range函数大多数时常出现在for循环中,在for循环中可做为索引使用。其实它也可以出现在任何需要整数列表的环境中,在python 3.0中range函数是一个迭代器。

2. 在第 22 行,你可以可以直接将 elements 赋值为 range(0,6) ,而无需使用 for 循环?

    elements为List格式,range()也是List格式,所以不用for循环,可以直接用

elements1 = range(0,6)print elements1

3. 在 Python 文档中找到关于列表的内容,仔细阅读以下,除了 append 以外列表还支持哪些 *** 作?

列表 *** 作包含以下函数:

1、cmp(List1,List2):比较两个列表的元素 

2、len(List):列表元素个数 

3、max(List):返回列表元素最大值 

4、min(List):返回列表元素最小值 

5、List(seq):将元组转换为列表 

列表 *** 作包含以下方法:

1、List.append(obj):在列表末尾添加新的对象

2、List.count(obj):统计某个元素在列表中出现的次数

3、List.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4、List.index(obj):从列表中找出某个值第一个匹配项的索引位置

5、List.insert(index,obj):将对象插入列表

6、List.pop(obj=List[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7、List.remove(obj):移除列表中某个值的第一个匹配项

8、List.reverse():反向列表中元素

9、List.sort([func]):对原列表进行排序

常见问题回答

如何创建二维列表?

就是在列表中包含列表,例如这样: [[1,3],[4,5,6]]

列表和数组不是一样的吗?

取决于语言和实现方式。从经典意义上理解的话,列表和数组是很不同的,因为它们的实现方式不同。在 Ruby 语言中列表和数组都被叫做数组,而在 Python 中又都叫做列表。现在我们就把它叫列表吧,因为 Python 里就是这么叫的。

为什么 for-loop 可以使用未定义的变量?

循环开始时这个变量就被定义了,当然每次循环它都会被重新定义一次。

为什么 for i in range(1,3): 只循环 2 次而非 3 次?

range() 函数会从第一个数到最后一个,但不包含最后一个数字。所以它在 2 的时候就停止了,而不会数到 3 。这种含首不含尾的方式是循环中及其常见的一种用法。

elements.append() 是什么功能?

它的功能是在列表的尾部追加元素。打开 Python 命令行,创建几个列表试验一下。以后每次碰到自己不明白的东西,你都可以在 Python 的交互式命令行中实验一下。


总结

以上是内存溢出为你收集整理的笨办法学Python 习题 32: 循环和列表全部内容,希望文章能够帮你解决笨办法学Python 习题 32: 循环和列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1183543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)