龙空技术网

python之for循环详解

不寐旋律 140

前言:

此刻姐妹们对“python两次for循环”大概比较重视,姐妹们都需要分析一些“python两次for循环”的相关内容。那么小编在网络上收集了一些对于“python两次for循环””的相关文章,希望姐妹们能喜欢,各位老铁们一起来了解一下吧!

#挑战30天在头条写日记#

for循环介绍

在Python编程语言中,for循环是一种常用的控制流语句,它允许你反复执行某段代码,直到满足特定的条件。for循环通常用于遍历序列(如列表、元组、字符串等)或其他可迭代对象。

for 循环语法结构

for 变量 in 可迭代对象:    for 循环逻辑
从购物过程理解 for 循环

购物车

我们都有在超市购物的经历,将一件一件的商品放进购物车:

我们如果把购物车比做一个容器,例如学习过的列表,元组,字典等数据结构,那么里面的商品就可以看成是一个个元素,而且购物车中的元素是有固定数量的。

扫码结账

当我们去超市收银台扫码结账的时候,店员会将购物车中的商品一件一件的取出,然后扫描二维码。注意这里的过程是拿一件,扫一件。

又因为购物车中商品数量是有限的,所以扫描商品的次数也是有限次。比如,购物车中有5件商品,那么最后就会扫描 5 次。

案例:扫描商品

[root@localhost test]# vim for.py   # for.py是文件名,可以修改# cart 表示购物车cart = ["巧克力派", "鱿鱼丝", "碎冰冰", "Python从入门到入坟"]# for 的逻辑:店员每次从 cart 中拿出一个 item 进行扫码for item in cart:  # item: 项    print("扫码: " + item)

从上述代码可以看出,购物车cart中有5件商品,所以for中的print逻辑执行了5次。for一般用于指定次数的循环逻辑中,一般情况下,循环次数未知采用while循环,循环次数已知,采用for循环。在for关键字后面跟的这个item变量,变量名是可以根据变量命名规则更改的。

案例:计算购物车商品总价

[root@localhost test]# vim for1.py  #for1.py是文件名,可以修改# cart_price 存放每个商品的价格cart_price = [10, 15, 20, 99.99]total_price = 0  # total: 总共# for 循环做价格的累加for price in cart_price:    total_price += priceprint("总价为: " + str(total_price))
遍历以及迭代器遍历

我们如果把店员将购物车商品一件一件取出进行扫码的过程,比喻成将某个容器中的元素一个个取出然后进行后续操作,这个过程就叫做遍历。

遍历不仅限于列表,还适用于元组,字典和字符串类型。

可迭代对象

概念:一个实现了__iter__方法的对象是可迭代对象,一个实现next方法的对象则是迭代器。

大白话:现阶段我们学过的可迭代对象有 字符串,列表,元组,集合,字典,range(),并且能被 for 循环的都是可迭代对象。

案例:遍历字符串

[root@localhost test]# vim for2.py  # for2.py是文件名,可以修改# 遍历字符串str01 = "hello world"for str_item in str01:    print(str_item)
for 循环特性break、continue、else

关键字

作用

break

结束当前循环

continue

跳出当次循环,继续执行下次循环

else

循环正常结束(非 break 退出),执行 else 逻辑

案例:打印列表中元素,遇到小于0的元素停止打印

break 应用

[root@localhost test]# vim for_break.py  # for_break.py是文件名,可以修改for item in [1, 2, 3, -4, 5, -6]:    if item < 0:        break    print("item is: " + item)print("for循环外部:打印完毕")

图例说明:

案例:计算列表中所有大于0的数字的和

continue 应用

[root@localhost test]# vim for_continue.py  # for_continue.py是文件名,可以修改sum_for = 0for item in [1, 2, 3, -4, 5, -6]:	if item < 0:        continue	sum_for += item    print("加了一次~")print("for循环外部:计算完毕, sum: " + str(sum_for))

图例说明:

range 函数

range 函数是一个内建函数,它的返回值是一个半闭半开范围内的整数。for 循环常与range函数一起使用,range 函数为循环提供条件。

语法结构

案例

常规使用:

[root@localhost test]# python3>>> tmp = range(1, 10)>>> tmprange(1, 10)>>> len(tmp)9>>> list(tmp)[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> tmp01 = range(5)>>> tmp01range(0, 5)>>> list(tmp01)[0, 1, 2, 3, 4]

因为 range 函数的使用和切片比较类似,所以同样具有切片的使用特性:

[root@localhost test]# python3>>> tmp = range(1, 10, 2)>>> list(tmp)[1, 3, 5, 7, 9]
与 for 循环一起使用

可以把 range 函数当成购物车,购物车中的商品是一个个范围内的数字,要想拿出里面的数字,就得遍历,所以 range 可以和 for 连用,可以控制循环次数。

案例:控制for循环的次数

[root@localhost test]# vim for3.py  # for3.py是文件名,可以修改for i in range(3):    print("第" + str(i) + "次:hello world")

如果直接打印 "hello world":

[root@localhost test]# vim for4.py  # for4.py是文件名,可以修改for i in range(3):    print("hello world")

这里的变量 i 只是为了语法,在案例中没有实际意义,不写变量在语法层面会报错,这里的 range 只为控制循环次数。

列表解析

它是一个非常有用、简单、灵活的工具,可以用来动态地创建列表,注意:它只是一个简写方式,不是新知识点

语法结构案例:生成一个元素为 1~10 的列表

for 循环方式:语法相对复杂,但是好理解

[root@localhost test]# vim for5.py  # for5.py是文件名,可以修改list01 = []for i in range(1, 11):    list01.append(i)  # [1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10]print(list01)

列表解析式

[root@localhost test]# vim for6.py  # for6.py是文件名,可以修改list01 = [i for i in range(1, 11)]

列表解析式相对于for循环,只是变了一种结构,核心还是for循环,所以我们只需要关心语法即可。

练习:将刚才的 list01 列表的基础上对其中的每个元素加 1

[root@localhost test]# vim for7.py  #for7.py是文件名,可以修改list01 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]list01 = [i+1 for i in list01]print(list01)
综合练习练习:斐波那契数列斐波那契数列就是某一个数,总是前两个数之和,比如 0,1,1,2,3,5,8使用for循环和range函数编写一个程序,计算有10个数字的斐波那契数列改进程序,要求用户输入一个数字,可以生成用户需要长度的斐波那契数列

版本一:

[root@localhost test]# vim test_for.py  # test_for.py是文件名,可以修改fib = [0,1]  # 定义列表,指定斐波那契数列的初始两个值for i in  range(8):  # for循环执行8次,列表fib中的元素个数变为10【初始2个 + 新增的8个】    fib.append(fib[-1] + fib[-2])  # 列表追加,每次都是最后一个元素和倒数第二个元素相加,产生新的元素print(fib)  # 打印列表fib

版本二:编写可以指定长度的斐波那契数列程序

[root@localhost test]# vim test01_for.py  # test01_for.py是文件名,可以修改fib = [0,1]  # 定义列表,指定斐波那契数列的初始两个值n = int(input('长度: '))  # 定义变量n, 此变量为用户要看到的列表fib中的元素个数# for循环执行n-2次,for循环执行多少次,列表fib会新增多少个元素# 因为列表fib本身有两个初始值,所以要产生n-2个数字for i in  range(n - 2):        fib.append(fib[-1] + fib[-2])  print(fib)

标签: #python两次for循环