读书笔记——《Python编程从入门到实践》第四章

读书笔记——《Python编程从入门到实践》第四章

本章的主要内容

  • 进一步深化列表的使用,包括:列表的遍历;遍历过程中的缩进;如何创建简单的数字列表;列表解析;如何通过切片来获取列表的一部分;
  • 学习了元组
  • 学习代码格式

深化列表的使用

列表的遍历

所谓列表的遍历,就是对列表中的每一个元素都执行相同的操作。可以使用for循环来实现列表的遍历,如下所示:

books = ["a.围城", "b.配色设计原理", "c.Spring源码解析"]

for book in books:
	print(book)

# 输出如下所示:
# a.围城
# b.配色设计原理
# c.Spring源码解析

上例代码中,先创建了一个列表books,列表中保存了三本书的名字。用for循环的方式,将每本书的名字打印出来。for循环轮流将列表中元素取出放到变量book,接着执行print方法打印,这里要注意print方法是往里缩进了的,这是有意为之,缩进的代码表示是for循环对每一个元素要执行的代码
上面的代码告诉我们,在Python中缩进是严谨的,该缩进不缩进,不该缩进却进行了缩进,都有可能会导致问题,这一点跟其他的编程语言可能有些不同。

创建数值列表

数值列表就是列表中元素都是数值。这里将介绍使用range方法和list方法来创建简单的数值列表(当然并不是说只有这种办法)。

range函数

range函数可以帮助我们轻松地生成一系列数。用法如下所示:

  • range(end)
    生成[0, end)的整数,注意0是闭区间,表示会生成,end是开区间,表示不会生成。例如,range(4),将会生成数字0,1,2,3
  • range(begin, end)
    生成[begin, end)的整数。例如,range(1, 4),将会生成数字1,2,3
  • range(begin, end, step)
    生成[begin, end)的整数,并且步长为step,步长就是生成数字间隔的大小。例如,range(1, 4, 2),将会生成数字1,3
range函数结合list函数可以生成数值列表

如下所示:

# 使用range方法和list方法可以生成数字列表
nums = list(range(1,5))
print(nums) # 输出: [1, 2, 3, 4]

数值列表的简单统计

数值列表中保存了一系列的数值,我们可以进行简单的统计操作,包括:

  • 求最大值:使用max函数
# 使用range方法和list方法可以生成数字列表
nums = list(range(1,5))

# 使用max方法可以求出数字列表的最大值,下面对列表[1,2,3,4]进行操作
print("最大值:" + str(max(nums))) # 输出:最大值:4
  • 求最小值,用min函数
# 使用range方法和list方法可以生成数字列表
nums = list(range(1,5))

# 使用min方法可以求出数字列表的最小值,下面对列表[1,2,3,4]进行操作
print("最小值:" + str(min(nums))) # 输出:最小值:1
  • 求总和
# 使用range方法和list方法可以生成数字列表
nums = list(range(1,5))

# 使用sum方法可以求出数字列表的总和,下面对列表[1,2,3,4]进行操作
print("总和:" + str(sum(nums))) # 输出:总和:10

列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素以形成列表的操作。其格式为:[表达式 for循环],示例如下:

# 列表解析
nums = [value ** 2 for value in range(1,11)]
print(nums) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

使用切片来获取列表的一部分

我们已经知道了如何使用列表的一个元素,也知道了使用for循环遍历整个列表的所有元素。但是如何使用列表的一部分元素呢?这就需要使用切片。切片语法如下所示:

  • 列表名[开始索引:结束索引]

    nums = [value ** 2 for value in range(1,11)]
    print(nums) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    # 切片
    print(nums[1:3]) # 输出:[4, 9]
    print(nums[1:]) # 输出:[4, 9, 16, 25, 36, 49, 64, 81, 100]
    print(nums[:3]) # 输出:[1, 4, 9]
    print(nums[:]) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
  • 列表名[开始索引:结束索引:步长]

    # 列表解析
    nums = [value ** 2 for value in range(1,11)]
    print(nums) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    # 切片
    print(nums[::2]) # 输出:[1, 9, 25, 49, 81]
    

切片语法的注意点如下所示:

  • 开始索引和结束索引都可以忽略
  • 开始索引忽略,表示从0开始
  • 结束索引忽略,表示列表的长度
  • 冒号不可省略
  • 列表索引是从0开始的
  • 开始索引是包含的,意味着切片中包含开始索引那个位置的元素
  • 结束索引是不包含的,意味着切片中不包含结束索引位置的元素
  • 通过切片获取的列表已经是另一个列表,通过nums[:]获取到原列表的副本

元组

Python中将不可变的列表称为元组,在很多方面元组跟列表是一样的,例如使用元组、遍历元组都是跟列表是一样的。但是亦有一些不同之处。如下所示:

  • 定义元组
    先前我们已经知道列表的定义使用方括号,但是元组是使用圆括号来定义的。如下所示:
# 定义一个元组
names = ("freedom", "阿黄", "阿狗")
print(names) # 输出:('freedom', '阿黄', '阿狗')
  • 修改元组元素
    列表是可以,所以元素是可以改变的。元组是不可变的,所以不可修改元组元组。

代码格式

PEP 8为Python程序员提供了代码格式设置指南。现在先讲解一部分代码格式,如下所示:

  • PEP 8建议每级缩进都使用4个空格
  • 每行不超过80字符,建议注释长度不超过72字符
  • 使用空行来组织代码文件,但也不能滥用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值