看完就会的python循环:从可迭代到嵌套的深度探索

一.Iterable 可迭代类型

任何可以被for...in...循环遍历的对象都是Iterable可迭代类型。一般情况下str 和 range 最为常见被用于在for   in     循环中。

判断一个对象是否是可迭代类型,可以使用collections.abc模块中的Iterable抽象基类。

from collections.abc import Iterable  
  
# 示例  
my_list = [1, 2, 3]  
print(isinstance(my_list, Iterable))  # 输出: True  
  
my_string = "hello"  
print(isinstance(my_string, Iterable))  # 输出: True  
  
my_number = 123  
print(isinstance(my_number, Iterable))  # 输出: False,因为整数不是可迭代的

二.for 的两种常见形式

在Python中,for 循环是一种常用的迭代结构,用于遍历任何序列(如列表、元组或字符串)或其他可迭代对象(如字典的键或值、集合、文件对象等)。for 循环的基本语法允许你针对序列中的每个元素执行一段代码块。

基本语法

for 变量 in 可迭代对象:  
    # 缩进块: 对每个元素执行的代码  
    # 可以在这里使用变量
示例
遍历列表
fruits = ["apple", "banana", "cherry"]  
for fruit in fruits:  
    print(fruit)  
# 输出:  
# apple  
# banana  
# cherry

 

遍历字符串
s = "hello"  
for char in s:  
    print(char)  
# 输出:  
# h  
# e  
# l  
# l  
# o
遍历字典的键和值

遍历字典的键:

d = {'a': 1, 'b': 2, 'c': 3}  
for key in d:  
    print(key)  
# 输出:  
# a  
# b  
# c

同时遍历字典的键和值:

for key, value in d.items():  
    print(key, value)  
# 输出:  
# a 1  
# b 2  
# c 3

 

使用range()

range() 函数常用于生成一个整数序列,常用于for循环中控制循环次数。

for i in range(5):  # 相当于从0到4  
    print(i)  
# 输出:  
# 0  
# 1  
# 2  
# 3  
# 4

 

你还可以指定range()函数的起始值和步长:

for i in range(1, 10, 2):  # 从1开始到9(不包括),步长为2  
    print(i)  
# 输出:  
# 1  
# 3  
# 5  
# 7  
# 9

三.打断循环好帮手 break 和 continue

在Python中,breakcontinue是两个用于控制循环流程的关键字,它们可以在for循环和while循环中使用。

break

break语句用于立即退出当前所在的循环体(无论是for循环还是while循环),而不再执行循环中剩余的语句。当遇到break时,循环将立即终止,并且控制权将传递给紧跟在循环之后的语句(如果有的话)

for i in range(1, 6):  
    if i == 3:  
        break  # 当i等于3时,退出循环  
    print(i)  
# 输出:  
# 1  
# 2
示例 
# 随机输出最多10个10到20的数如果输出的数有15 则中断循环
for i in range(10):
    num = random.randint(10, 20)
    print(num)
    if num == 15:
        break
else:
    print("没有15")

continue

continue语句用于跳过当前循环的剩余语句,并继续下一次循环迭代(如果有的话)。continue语句之后的任何语句在当前迭代中都不会被执行,循环将直接跳到下一次迭代的开始。在以后学习中用的比较少,作用比较小,就不过多赘述了。

for i in range(1, 6):  
    if i % 2 == 0:  
        continue  # 如果i是偶数,则跳过剩余语句,继续下一次迭代  
    print(i)  
# 输出:  
# 1  
# 3  
# 5

四.for 和 else

在Python中,for循环可以与一个可选的else子句结合使用,但这种用法可能与你在其他编程语言中遇到的if-else结构有所不同。在Python的for循环中,else子句在循环正常结束(即没有遇到break语句)时执行。如果循环因为break语句而提前终止,则不会执行else子句中的代码。

语法

for 变量 in 可迭代对象:  
    # 循环体  
    # 如果需要,可以使用break来提前退出循环  
else:  
    # 循环正常结束时执行的代码
示例
没有break的情况

 在这个例子中,for循环正常结束,因此执行了else子句中的代码。

for i in range(1, 6):  
    print(i)  
else:  
    print("循环正常结束")  
# 输出:  
# 1  
# 2  
# 3  
# 4  
# 5  
# 循环正常结束
有break的情况

在这个例子中,当i等于3时,break语句导致循环提前终止,因此没有执行else子句中的代码。

for i in range(1, 6):  
    if i == 3:  
        break  
    print(i)  
else:  
    print("循环正常结束")  
# 输出:  
# 1  
# 2  
# 由于i等于3时执行了break,因此不会打印"循环正常结束"

五. 循环嵌套 

Python中的循环嵌套指的是在一个循环体内再嵌套另一个循环。这种结构在处理需要多维迭代的情况时非常有用,比如遍历二维数组(列表的列表)、矩阵、或者在处理具有层级结构的数据时。

深入理解breakcontinue语句在嵌套循环中的行为是很重要的,因为它们可以帮助你控制循环的流程。

示例

它往往帮助我们解决复杂问题时用到,例如:寻找1000以内所有质数。

# 外层循环控制value值的变化
for value in range(2, 1001):
    # 内层循环实现判断value是不是质数
    for i in range(2, value):
        if value % i == 0:
            break
    else:
        print(f'{value}是质数')

可以自行运行此代码帮助你更好的了解循环嵌套和break的用法。

留一个简单的问题:输入数字n 求n的阶乘和   5的阶乘和 =5!+4!+3!+2!+1!自行作答。

通过循环嵌套,可以处理多维的数据结构或者执行更复杂的重复操作。

总之,熟练掌握这些循环相关的知识和技巧,对于编写高效、准确的 Python 程序至关重要。

制作不易,请多多三连。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值