• Python学习基础笔记六十八——循环


    循环是编程语言常见的流程控制。

    Python语句要让计算机反复地做一些事情,就要用到循环语句。

    有While和for循环。

    while循环:

    1. command = input("请输入命令:")
    2. while command != 'exit':
    3. print(f'输入的命令是{command}')
    4. command = input("请输入命令")

    while循环是:检查一个条件表达式,只要条件表达式计算结果为True,就会执行下面缩进的代码。

    如此反复执行,如果条件表达式为False,就结束循环。

    command != 'exit'  这是一个条件表达式,判断输入的command这个变量值是否等于exit。

    如果不等于,就开始执行下面缩进的代码,就是循环体中的代码,这个代码中还会让用户再次输入值到command。

    如果用户输入的command,一直都不是exit,就会一直执行循环。

    如果输入的comand等于exit,就结束循环。

    这段代码写的还是比较麻烦。这样写有点啰嗦。

    如果这个表达式永远为True,那么这个循环就永远不退出循环,一直处于运行状态。就变成死循环。也就是循环条件都是成立的。

    死循环不一定代表这个程序是有问题的。看你程序的意图和目的来定的。

    从1打印到100的代码:

    1. i = 1
    2. while i <= 100:
    3. print(i, end=" ")
    4. i += 1

    for循环:

    for循环的用法:

    for循环,通常是从一个sequence类型,比如字符串、列表或者元组中依次取出每个元素进行操作。

    1. studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
    2. for student in studentAges:
    3. print(student)

    for student in studentAgs:  这个student变量依次代表了studentAges里面的每个元素,执行下面的缩进的代码print(student)。

    依次的意思:

    第一次循环是取出第一个元素。

    然后第二次循环是取出第二个元素。

    ……

    如果操作一个空列表:

    1. for i in []:
    2. print(i)

    循环n次:

    开发程序的时候,我们经常需要循环执行某段代码n次。

    1. for n in range(10):
    2. print(n)

    打印出来是从0到9。从0到range里面参数值-1的这个范围。

    这段代码使用的是for语句和一个内置类型range

    python3中,range不是一个函数,不会返回一个数字列表,python3中range是一个类。

    不想从0开始打印,而是从某个值开始,如果打印从50到60的数字。

    可以使用range(50, 61) 也是那个概念:顾头不顾尾。

    1. for n in range(50, 61):
    2. print(n, end=" ")

    enumerate函数:

    有的时候,在使用for循环从列表或者元组中遍历元素的时候,除了要取得每个元素,还需要得到每个元素在列表或元组里面的索引。

    比如要从下面列表中找出年龄大于17的学员,并打印他们在列表中的索引。

    studentAges = ['小王:17', '小赵:16', '小李:18', '小孙:16', '小徐:18']

    这个时候就可以使用enumerate函数。

    1. studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
    2. for idx, student in enumerate(studentAges):
    3. if int(student.split(':')[1]) > 17:
    4. print(idx)
    5. print(student.split(":")[0])
    6. print(student.split(":")[1])

    break终止循环:

    有的时候,我们循环体中的代码发现满足某个条件,就需要终止循环。

    我们使用关键字break:

    1. while True:
    2. command = input("请输入命令:")
    3. if command == 'exit':
    4. break
    5. print(f'输入的命令是{command}')

    输入exit就直接退出循环。

    这段代码的终止条件不是通过while循环的条件判断语句来进行判断的。而是通过if语句,其中有break语句。

    解释器执行到循环语句中的break语句,就会从循环while退出。

    break是非常常用的。

    函数中的break和return:

    return只能用在函数里面,表示从函数中返回。

    return语句表示从函数中返回,它是不能用在函数外边的。

    但是在函数中的循环体内的代码,使用return和break都可以从循环体中跳出。但是break只是跳出循环,如果循环后面有代码,还是会执行的。

    return表示会从函数里面立即返回,函数体里的任何代码都不执行了。

    continue语句:

    break是立即跳出循环。以后的循环就不执行了。

    有的时候,我们循环体内的代码在发现某个条件满足的时候,不是要终止整个循环,而是只结束当前这一轮循环,后面还要继续循环的执行。

    1. while True:
    2. command = input("请输入命令:")
    3. if command == 'exit':
    4. break
    5. if command == 'cont':
    6. continue
    7. print(f'输入的命令是{command}')
    8. print('程序结束')

    当输入cont的时候,就执行continue语句,是结束本次循环。不打印这个命令的那条语句,但还是让用户继续输入下一个命令。

    列表推导式:

    我们经常需要这样处理一个列表,把列表里的每个元素,经过相同的处理,生成另一个列表。

    1. list1 = [1,2,3,4,5,6]
    2. list2 = [num**2 for num in list1]
    3. print(list2)

    那这种写法,通常叫做列表推导式。

    这个是经常使用到的列表推导式。这样写就比较省事。

    循环嵌套:

    这是典型的 2个列表元素两两组合的问题:

    1. list1 = ['关羽','张飞','赵云','马超','黄忠']
    2. list2 = ['典韦','许褚','张辽','夏侯惇','夏侯渊']
    3. for member1 in list1:
    4. for member2 in list2:
    5. print(f'{member1} 大战 {member2}')

    需要使用到循环的嵌套。

    所谓的循环的嵌套,就是循环中还有循环。

    内部的代码都要执行完,才能执行外部的循环代码。

  • 相关阅读:
    中国土工合成水泥复合垫行业应用态势与需求前景预测报告2022-2028年
    【wpf】深度解析,Bingding是如何寻找数据源的 上篇
    (一)Vue核心
    C++下基于遗传算法解决TSP问题
    综合实训-------成绩管理系统 V1.1
    JVM垃圾回收相关概念
    Linux系统编程系列之互斥锁和读写锁
    任何人不知道定制软件的这些优点我都会伤心的!
    第二章 进程与线程 十六、信号量机制
    记录一下在Ubuntu18.04下,程序窗口之间切换快捷键
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/133821435