零基础玩转Python(6)

零基础玩转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)

列表推导式会有很多的拓展,这边暂时只介绍一种简单的用法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

压力小子呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值