Python学习笔记(三)
一.for循环
在各种编程语言中,毫无疑问,循环是非常重要的一个操作。循环可以让我们对列表中每一个元素都采取一系列措施,从而高效的处理任何列表。
先看一段代码体验一下for循环:
>>> fruits = ['banana', 'apple', 'mango']
>>> for fruit in fruits:
print('水果 :', fruit)
水果 : banana
水果 : apple
水果 : mango
这就是一个简单的循环。它的基本语法就是:
for 迭代变量 in 序列:
循环语句
其中有两点需要注意:
(1)Python中缩进是非常必要的,在循环体中必须注意缩进,只有缩进的语句才会被视为循环体语句,否则将视为普通语句;但是不需要缩进的语句如果缩进,python将会报错。
(2)for语句之后是一个冒号(:),这个冒号不能遗漏。
二.数值列表
在for循环中,如果对一个数值列表进行操作的话,输入数字是比较麻烦的。在这,我们引入一个函数range()
我们先看一段代码:
>>> for num in range(1,3):
print(num)
1
2
由此可见,range()函数可以生成一系列数字,range(1,3)就是[1,3),可以理解为左闭右开区间。
那如果说我想输出10以内的偶数呢,接下来我们可以给range函数引入步长。先看代码:
>>> for num in range(0,11,2):
print(num)
0
2
4
6
8
10
就是说给range函数再引入第三个数作为步长,代码意思是从0到11,每隔1个数就打印出来数字,这样我们就得到了10以内的偶数。
此外,Python中还有几个简单的统计计算,可以方便我们对数据的处理:
>>> list = {1,2,3,4,5}
>>> min(list) ##求列表最小值
>>> max(list) ##求列表最大值
>>> sum(list) ##列表数字求和
三.列表解析
如果说我想输出10以内偶数的平方需要怎么处理,按照上面的循环就是先输出10以内偶数,然后进行平方,再循环输出。
除此之外,我们还可以进行列表解析,把for循环与平方进行合并,一行代码就可以实现。
>>> squares = [ num**2 for num in range(0,11,2)]
>>> print(squares)
[0, 4, 16, 36, 64, 100]
使用列表解析,就是先指定一个列表名(如squares),然后指定一个方括号并定义一个表达式(num**2),用于存储计算后的值。
四.对列表进行切片处理
假如说列表中存在五种水果,我只要前三种,那我们就可以对列表进行切片,代码如下:
>>> fruits = ['banana', 'apple', 'mango','peach','pear']
>>> print(fruits[0:3])
['banana', 'apple', 'mango']
这种切片我们可以随意指定想要哪种水果,中间三种就是[1,4]
需要注意的是,如果我们没有指定切片头,Python默认从列表头开始;同理,如果没有指定切片尾,那么就从选定位置到列表最后一个。另外,如果我们想输出后三种水果,我们也可以使用负数切片[-3: ]
如果我们想复制整个列表,那么我们可以直接使用切片[ : ]
用代码解释一下吧:
>>> my_fruits = ['banana', 'apple', 'mango']
>>> friend_fruits = my_fruits[:]
>>> my_fruits.append('pear')
>>> friend_fiuits.append('peach')
>>> print('My favorite fruits are '+ str(my_fruits))
>>> print('My friend favorite fruits are '+ str(friend_fruits))
My favorite fruits are ['banana', 'apple', 'mango', 'pear']
My friend favorite fruits are ['banana', 'apple', 'mango', 'peach']
五.元组
通过上边的例子,可以发现,列表是可以修改的。但是我们有时候需要创建不能被修改的元素,元组就可以满足要求。
不可变的列表称为元组。
元组看起来和列表很像,但是它使用圆括号而不是方括号。(元组和C语言中的数组颇为相似)
我们先看一个例子:
>>> dimensions = (200,300)
>>> print(dimensions[0])
>>> print(dimensions[1])
200
300
元组是不可被修改的,如果我们强行修改,Python就会报错。
虽然不能修改元组中的元素,但是我们可以给元组赋值,重新定义元组,这种赋值是合法的。
>>> dimensions = (200,300)
>>> print(dimensions[0])
>>> print(dimensions[1])
200
300
>>> dimensions = (400,600)
>>> print(dimensions[0])
>>> print(dimensions[1])
400
600