一、for 循环简介
循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。
for 的语句格式如下:
for <变量> in <循环序列>:
【循环体】
注:通过 for 循环依次将 <循环序列> 中的数据取出赋值给 <变量>,再通过【循环体】进行处理。
例1:for 循环访问列表
# for 循环访问列表
代码:
list = ['张三', '李四', '王五']
for i in list:
print(i)
输出结果:
张三
李四
王五
注意: i这个变量是在 for 循环中定义的,意思是,依次取出 list 中的每一个元素,并把元素赋值给i,然后执行for循环体。
例2: for 循环访问字典
代码:
dict = {'张三': 98, '李四': 89, '王五': 56}
for key, value in dict.items():
print(key, value)
输出结果:
张三 98
李四 89
王五 56
例3: for 循环访问字符串
# for 循环访问字符串,可以依次读取每个字符
代码:
for each in 'Trkczx':
print(each)
输出结果:
'T'
'r'
'k'
'c'
'z'
'x'
二、for ... else ... (比较少用到)
for ... else ... 格式:
for <变量> in <循环序列>:
【循环体】
else:
【else的语句块】
注:for 遍历序列,无 break 结束当前循环,循环结束后执行 else 语句块
例1:
list = ['张三', '李四', '王五']
for i in list:
print(i)
else:
print('循环完整结束后执行')
输出结果:
张三
李四
王五
循环完整结束后执行
例2:
list = ['张三', '李四', '王五']
for i in list:
print(i)
if i == '李四':
break # break 结束循环,for 下的 else 也不会执行
else:
print('循环完整结束后执行')
输出结果:
张三
李四
例3:
list = ['张三', '李四', '王五']
for i in list:
if == '李四':
continue # continue 跳过本次循环,进入下一次循环
print(i) # 如果被 continue 本条语句不会执行
else:
print('循环完整结束后执行')
输出结果:
张三
王五
循环完整结束后执行
注:continue 只是跳过本次循环,循环结束后 else 语句块最后被执行
三、for 循环嵌套
循环嵌套为循环中嵌套另外一层循环。
for <外层循环变量> in <外层循环序列>:
for <内层循环变量> in <内层循环序列>:
【内层循环体】
【外层循环体】
这个只是一个for 与 for 的循环嵌套,当然也可以使用 for 与 while 嵌套。
循环嵌套经典
例1:倒三角的九九乘法表
# 九九乘法表
运行代码:
for i in range(1, 10):
for j in range(i, 10):
print('%d * %d = %d' % (i, j, i * j), end='\t')
print('') # 控制换行
运行结果:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9
2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54
7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
8 * 8 = 64 8 * 9 = 72
9 * 9 = 81
例2:冒泡排序
# 冒泡排序
(1)定义
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
(2)运行代码:
list = [9, 2, 7, 4, 5, 6, 3, 8, 1, 10]
n=0
for i in range(len(list)-1):
for j in range(len(list)-i-1):
if list[j] < list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
n+=1
print(list)
(3)运行结果:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
(4)代码解释
以下是代码的详细含义:
-
list是一个包含需要排序的数字的列表。
-
n被初始化为0,但在这段代码中没有用于任何有意义的目的。
-
外部循环使用变量i,它在范围从0到列表的长度减1之间迭代。这控制了需要多少次遍历整个列表。
-
内部循环使用变量j,它在范围从0到列表的长度减去当前的i之间迭代。这是因为,在每次遍历后,最大的元素“冒泡到”列表的末尾,因此在后续的遍历中无需再考虑它。
-
在内部循环中,你将 list[j] 与 list[j+1] 进行比较。如果 list[j] 比 list[j+1] 小,就交换它们的位置。这个过程一直持续,直到最大的元素移动到列表的末尾。
-
在每次遍历列表后,最大的未排序元素会移动到末尾。这意味着最大的元素已经处于正确的位置。
-
当所有遍历都完成后,列表将按降序排列,然后使用 print(list) 将其打印出来。
四、for循环访问迭代对象
迭代器有两个基本的方法:iter() 和 next()
iter() 创建一个迭代器
next() 访问迭代元素,访问后指针向下移一行
示例:
>>>list=[0,1,2,3,4]
>>> it = iter(list) # 创建迭代对象
>>> print (next(it)) # 访问当前指针元素,结束后指针向下移一步
0
>>> print (next(it))
1
>>>
2、for循环访问迭代器
示例:
代码:
list = ['张三', '李四', '王五']
a= iter(list) # 创建迭代器对象
for each in a: # 循环访问迭代器
print(each)
运行结果:
张三
李四
王五
注意:迭代器访问数据比通过索引循环访问速度更快,数据量大时一般会使用迭代器
五、range ( ) 类控制循环访问
range ( ) 为 Python 的自有类,range() 带有内置的迭代方法__iter__() 和 __next()__ ,它是一个可迭代对象,我们可以通过 for 访问 range() 创建的迭代器。
注:__iter__() 和 __next()__ 左右均为两个_下横线
range 类初始化参数说明:
range(stop) 从0开始到stop结束(不包含 stop)返回一个产生整数序列的迭代对象。
range(start, stop[, step]) 从 start 开始到 stop 结束(不包含 stop)返回一个整数序列的迭代对象, step 为他的步长。
例1:
代码:
for i in range(5):
print(i)
输出:
0
1
2
3
4
例2 :
代码:
for i in range(1,5):
print(i)
运行结果:
1
2
3
4
示例3:
代码:
for i in range(1,5,2):
print(i)
运行结果:
1
3
例4:
代码:
for i in range(-1,-5,-2):
print(i)
运行结果:
-1
-3
注意:start, stop, step 三个参数可以为负数
例5:
# 结合range()和len()函数以遍历一个序列的索引。
代码:
list = ['张三', '李四', '王五']
for i in range(len(list)):
print(list[i])
运行结果:
张三
李四
王五
注:for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict 等,任何可迭代对象都可以作用于 for 循环,而内部如何迭代我们通常并不用关心。文章来源:https://www.toymoban.com/news/detail-847633.html
通常可迭代对象一般具备 iter() 和 next() 方法或者 __iter__() 和 __next()__ 方法。文章来源地址https://www.toymoban.com/news/detail-847633.html
到了这里,关于[Python入门]Python中的循环语句(for循环语句)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!