【12】python3 流程控制——for循环

另一个常用的循环语句是for循环。可以按照顺序遍历可迭代对象中的内容。

一、基本结构

for循环的基本结构如下:

'''
for <variable> in <sequence>:
    <statements>
else:
    <statements>
这里的else语句是可选的,可以根据需要选择是否使用
'''

s = 'fuiyoiop'
for i in s:
    print(i)
else:
    print('遍历完成')

上述代码的运行结果如下:

可以看到和while循环结构很像,那如果在循环中加入break,会不会也和while循环一样,不再执行else后的语句了呢?我们来验证一下,修改上述代码为:

s = 'fuiyoiop'
for i in s:
	if i == 'y':
		break
	print(i)
else:
	print('遍历完成')

运行结果为:

可以看到,和while循环一样,当使用break关键字终止循环后,else下的语句将不会被执行。同样的,如果语句里加入continue,只会终止本次循环,当结束循环后,else后的语句会被执行:

s = 'fuiyoiop'
for i in s:
	if i == 'y':
		continue
	print(i)
else:
	print('遍历完成')

执行结果为:

二、range()函数

如果要将一句话打印多次要怎么做呢?我们知道,如果使用while循环的话,需要声明一个变量,每循环一次,变量加一,如:

# 将‘你好’打印5次
count = 0
while count < 5:
	print('你好')
	count += 1

那使用for循环要怎么做呢?首先我们要生成一个迭代对象,用来计数,比如'12345'或者[1,2,3,4,5]等。python提供了一个函数range(),可以在指定范围内生成数列:

for i in range(10):  # 打印0-9之间的所有整数,这里的range(10)相当于range(0,10)
    print(i)


for i in range(1, 10, 2):  # 在1-9之间,每隔一个数打印一次(最后一位表示步长)
    print(i)


for i in range(10, 1, -1):  # 反向步长
    print(i)


# range(start_num, end_num)函数生成的数字范围为:[start_num, end_num-1)

打印5次‘你好’的代码可以写成:

for i in range(5):
    print('你好')

三、enumerate函数

这里顺带说一下enumerate()函数,对于一个可迭代的(iterable)/可遍历的对象(如列表,字符串),enumerate将其组成一个索引序列,利用此函数可以同时获得索引和值。

alist = ['Lily', 'like', 'dislike', 'music']
for i in enumerate(alist):
    print(i)

运行结果如下:

通过type函数可以看到,生成的是一个个元组,如果想直接得到索引和值,可以将上述代码改为:

alist = ['Lily', 'like', 'dislike', 'music']
for index, value in enumerate(alist):  # 其中index是索引,value是值,也可以使用别的变量名
	print(index, value)

输出结果为:

其中索引是int型,值的数据类型和其在列表中定义的一致。enumerate函数支持修改索引的起始值(默认为0),比如我们可以改成以100作为起始索引:

alist = ['Lily', 'like', 'dislike', 'music']
for index, value in enumerate(alist, 100):
	print(index, value)

执行结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值