零基础玩转Python(6)
文章目录
6.1 让列表循环起来
请大家先思考如下一个情景:你需要打印三条消息,分别向"Alice",“Bob”,“Mike” 三个人问好,显示Hello XXX
的消息,
你会怎么做?
或许你会:
names = ['Alice', 'Bob', 'Mike']
print('Hello ' + names[0])
print('Hello ' + names[1])
print('Hello ' + names[2])
运行结果:
Hello Alice
Hello Bob
Hello Mike
但是这样子我们需要连续使用三个print()
,三条消息还好,那么一万条消息呢?一定会很麻烦。但是Python已经为我们准备了强大的利器来应对这种情况,for
循环,看如下示例:
names = ['Alice', 'Bob', 'Mike']
for name in names:
print('Hello ' + name)
运行结果:
Hello Alice
Hello Bob
Hello Mike
不论names
列表里面有多少元素,他都只需要这两行就能打印出全部消息。
for
用来告诉Python解释器要使用循环了,接着name
这个变量,他的命名可以随意,但是最好有意义,他代表着在names中的一个元素。
循环的过程如下:
- 第1次name的值是’Alice’执行print语句
- 第2次name的值是’Bob’执行print语句
- 第3次name的值是’Mike’执行print语句
次数就是这个列表的长度。
注意到关键字in
跟在了names前面,他的意义是指,在names中进行循环。
6.2 用range()创建数字列表
6.2.1 range()介绍
现在要计算1~100的和,使用Python我们要怎么去计算呢?我们不必创建一个列表是[1, 2, 3, ······ 100]来进行计算,Python为我们提供了生成数字列表的强大方法: range()
先来看看range()的用法,这边使用了Python交互窗口:
>>> for i in range(0,4):
... print(i)
...
0
1
2
3
range()要和for .. in ..
配合起来使用,range(0,4)输出了0~3的值,我们发现他是不包含4的。
6.2.2 range()的例子
计算1~100的和:
# 计算1~100的和
sum = 0
for i in range(1, 101):
sum = sum + i
print(f'1~100和是: {sum}')
运行结果:
1~100和是: 5050
那么我要计算1~100所有偶数和要怎么办呢?也就是要有一个[2, 4, 6, ······, 100]的序列,range()方法同样能实现,他还拥有一个名为步长的参数。
range(start, end, step) :
- start指的是开始的数
- end指的是结尾,但不包含end的值
- step是步长,start会以+step的方式向前
计算1~100的全部偶数和:
# 计算1~100偶数和
sum = 0
for i in range(2, 101, 2):
sum = sum + i
print(f'1~100全部偶数和是: {sum}')
运行结果:
1~100全部偶数和是: 2550
6.2.3 最大、最小、求和
这边补充三个简单的方法,用于求数字列表的最大、最小、和总和。
分别是min()
,max()
,sum()
nums = [1,2,3,4,5,6]
print(max(nums)) # 最大值
print(min(nums)) # 最小值
print(sum(nums)) # 求和
print(len(nums)) # 列表长度,这边补充一点,这个方法也很重要
运行结果:
6
1
21
6
6.3 列表推导式
列表推导式是一种创建列表的很方便快捷的方法,例如你要创建一个1~50的序列。
for循环:
# 用for循环创建1~50的列表
nums = []
for i in range(1, 51):
nums.append(i)
print(nums)
但是列表推导式只需要一行:
# 列表推导式
nums = [x for x in range(1, 51)]
print(nums)
列表推导式会有很多的拓展,这边暂时只介绍一种简单的用法。