python for 循环

python for 循环

文章目录

      • 1. 基本概念
        • 1.1. for循环的使用规则
        • 1.2. 使用for循环时的注意事项
      • 2. 可迭代对象
      • 3. 字符串的for循环
      • 4. 列表的for循环
        • 4.1. 单层列表
        • 4.2. 嵌套列表
      • 5. 元组的for循环
      • 6. 字典的for循环
        • 6.1. 遍历字典的键
        • 6.2. 遍历字典的值
        • 6.3. 同时遍历字典的键和值
      • 7. range函数的for循环
        • 7.1. 定义格式
        • 7.2. 常规定义
        • 7.3. 将结果展开成列表
        • 7.4. 指定步长为2
        • 7.5. 通过序列索引迭代
        • 7.6. 示例说明:找出100以内能够被5整除的数
        • 7.7. 示例说明:高斯求和 - 求出1到100的所有数之和
        • 7.8. 示例说明:高斯求和 - 求出100以内奇数的和
        • 7.9. 示例说明:高斯求和 - 求出100以内偶数的和
        • 7.10. 示例说明:实现三角阵列(正向)
        • 7.11. 示例说明:实现三角阵列(逆向)
        • 7.12. 示例说明:99乘法表
        • 7.13. 示例说明:求阶乘
        • 7.14. 示例说明:有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数
        • 7.15. 示例说明:循环猜年龄,最多允许猜三次
        • 7.16. 示例说明:打印 * 三角形
        • 7.17. 示例说明:京牌摇号小程序
          • 7.17.1. random模块
          • 7.17.2. string模块
        • 7.18. 示例说明:年会抽奖程序
        • 7.19. 示例说明:用户登录管理系统
        • 7.20. 示例说明:求最大公约数和最小公倍数
        • 7.21. 示例说明:打印空心等边三角形
      • 8. 多个for语句
        • 8.1. 将字母变成大写
        • 8.2. 实现任意两个数的乘法
      • 9. 列表推导式
        • 9.1. 使用 list 将结果展开成列表
        • 9.2. 使用for循环和if来解决
        • 9.3. 使用列表推导式如何实现
        • 9.4. 输出结果
      • 10. for-else
      • 11. break & continue & return
        • 11.1. 需求:一栋楼有5层,每层2间房,要求把本楼所有的房间号都打印一遍
        • 11.2. continue: 遇到第三层时,不打印任何房间号,其他层都打印
        • 11.3. break 使用
        • 11.4. return 使用

1. 基本概念

for语句实际上解决的是循环问题。在很多的高级语言中都有for循环(for loop)。

for语句其实是编程语言中针对可迭代对象的语句,它的主要作用是允许代码被重复执行。

  • 是什么:在计算科学中,是针对特殊迭代对象的控制流语句,能够重复执行

  • 怎么构成:一个头部(是可迭代对象)+ 每个对象的执行

来自维基百科的介绍:

In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly。(作用:介绍了for循环是什么?)

A for-loop has two parts: a header specifying the iteration, and a body which is executed once per iteration. (for循环是什么构成的?)

Python中,for语句是一种迭代控制流语句,可以用于遍历序列(如字符串、列表、元组、字典、集合)中的每个元素,或者执行指定次数的循环。for循环语句的语法结构如下:

1.1. for循环的使用规则
  • for循环的执行顺序是从序列的第一个元素开始,依次遍历到最后一个元素;

  • 可以通过range()函数来指定遍历序列的范围,比如range(5)表示遍历0~4的整数序列;

  • Python中的for循环通常不需要使用计数器,而是直接使用遍历序列中的元素;

  • for循环可以使用break和continue语句来控制循环的执行流程,其中break用于退出循环,而continue用于跳过某个元素继续执行下一个元素;

  • 对于一些常见的序列类型(如字符串、列表等),可以使用内置函数len()获取序列的长度,从而确定for循环的遍历范围;

  • 可以使用enumerate()函数来同时获取序列中的元素和它们的索引;

  • 如果需要对多个序列进行遍历,可以使用zip()函数将它们组合成一个zip对象,然后再在for循环中依次取出每个元素;

1.2. 使用for循环时的注意事项
  • 循环次数的计算:要确保for循环的遍历范围正确,避免遗漏或重复访问序列中的元素。可以使用len()函数获取序列的长度,并配合range()、enumerate()或zip()等函数实现对序列的遍历;

  • 循环变量的作用域:for循环中定义的变量只在循环体内部有效,在循环体外无法访问。因此需要根据实际需要进行变量的定义和赋值;

  • 循环体的缩进:Python中使用缩进来表示代码块的层次结构,在for循环中必须正确缩进循环体,并保持一致的缩进风格;

  • 注意循环控制语句的使用:可以使用break、continue等语句控制for循环的执行流程,但要避免滥用和误用,以免导致代码逻辑混乱或死循环等问题。

2. 可迭代对象

可迭代对象(Iteratable Object) 是能够一次返回其中一个成员的对象,比如我们常用的字符串、列表、元组、集合、字典等等之类的对象都属于可迭代对象,获取到这些对象我们就可以用for循环来进行操作。

简单来理解,任何你可以循环遍历的对象都是可迭代对象。

如何判断一个Python对象是不是可迭代对象?通常是使用 isinstance()函数来判断对象是否是可迭代对象。

from collections import Iterable

小结:在Python常见的数据对象中,只有数字是不可迭代的,字符串、元组、列表、字典等都是可迭代的

3. 字符串的for循环

遍历打印字符串中的每个元素。


for i in "python": 
    print(i)    


for i in "abcdefg":
    print(i)

4. 列表的for循环

不管是单层列表还是多层的嵌套列表,我们都可以遍历打印出来:

4.1. 单层列表

a = ["小明","小红","小张","小王"]

for i in a:
    print(i)  # 打印列表中的每个元素


4.2. 嵌套列表

b = ["小明","小红","小张","小王",[19,20,18,23]]

for i in b:
    print(i)


输出结果:

小明
小红
小张
小王
[19, 20, 18, 23]

上面的例子中最后一个元素当做整体被打印出来,如果也想分开打印呢?


def qiantao(x):   # 定义一个函数
    for each in x:  # 遍历每个原始列表中的每个元素
        if isinstance(each, list):  # 判断每个元素是否是列表:isintance
            qiantao(each)  # 如果是列表,递归执行函数qiantao()
        else:
            print(each)  # 如果不是列表,就直接打印该元素
             
b = ["小明","小红","小张","小王",[19,20,18,23]]
 
# 调用函数,传入列表b
qiantao(b) 

输出结果:

小明
小红
小张
小王
19
20
18
23

5. 元组的for循环

元组tuple的循环和列表是类似的:

t = ("小明","小红","小王")

for i in t:
    print(i)


6. 字典的for循环

我们使用keys() 、values() 、items() ,我们可以分别遍历字典的键、值和键值对。需要注意的是:遍历字典默认是遍历字典的键,先定义一个字典:


d = {
   "name":"Peter","age":20,"sex":"male","address":"china"}

6.1. 遍历字典的键

for i in d.keys():  # 遍历字典的键
    print(i)


for i in d:  # 默认就是遍历键的取值
    print(i)

6.2. 遍历字典的值

for i in d.values():  # 遍历字典的值
    print(i)


6.3. 同时遍历字典的键和值
for i in d.items():  # 遍历字典的值
    print(i)

输出结果:


('name', 'Peter')
('age', 20)
('sex', 'male')
('address', 'china')

分别取出字典的键和值:


for k,v in d.items():
    print(k + "--->" + str(v))

输出结果:


name--->Peter
age--->20
sex--->male
address--->china


my_dict = {
   'a': 1, 'b': 2, 'c': 3}
 
for key, value in my_dict.items():
    print(key, value)


输出结果:

a 1
b 2
c 3

7. range函数的for循环

7.1. 定义格式

range函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。

  • range(start, stop, step)
  • start:包含start,默认为0,可不写则默认为0
  • stop:不包含stop,必须写
  • 步长step可正可负,默认是1,不能为0

注意:range函数是包含头部不包含尾部。

 
 

你可能感兴趣的:(python,linux)