Advertisement

Python-第四天 Python循环语句

阅读量:

Python-第四天 Python循环语句

  • 第1章 while循环
    • 1.1 while循环的基本语法结构

    • 1.2 while循环的典型示例

    • 1.3 while循环在复杂应用场景中的使用

    • 1.4 while循环的详细应用场景分析

    • 二、for循环

      • 1.for循环的基础语法

        • 1.1基础语法
        • 1.2 range语句
      • 2.for循环的嵌套应用

    • 三、循环中断 : break和continue

      • 1.continue
      • 2.break
    • 四、 综合案例

一、while循环

1.while循环的基础语法

复制代码
    while 条件:
    	条件满足时,做的事件1
    	条件满足时,做的事件2
    	条件满足时,做的事件3
    	.....
    
    
      
      
      
      
      
    
    代码解释

只要条件满足,会无限循环执行

复制代码
    i = 0
    while i < 100:
    print("小美,我喜欢你")
    i += 1
    
    
    
      
      
      
      
      
    
    代码解释
  1. while循环的条件必须是布尔值(即True或False),其中True表示继续执行循环体代码块。
  2. 必须设定循环终止的条件。例如,在每次迭代时将变量i增加1(i += 1),并配合i < 100,则可以在第100次迭代后退出循环;如果不设定终止条件则会陷入死锁。
  3. 空格缩进操作与if判断逻辑相同,在编程过程中也需要进行适当的配置。

练习案例:求1-100的和
需求:通过while循环,计算从1累加到100的和
提示:

请在程序运行前明确终止条件,并将其设定为保证while循环体执行不超过100次。
累积计算时,请确保所有的数值范围在起始值与最终值之间。

复制代码
    i = 0
    sum = 0
    while i <= 100:
    sum += i
    i+=1
    print(sum)
    
    
      
      
      
      
      
      
    
    代码解释

2.while循环的基础案例

猜数字案例

生成一个范围为1至100的随机整数变量,并利用while循环结构配合input函数获取用户输入的数据后与该随机数值进行比较

持续下去, 直到正确答案被发现

  • 每次猜测失败时会告知过大或过小
  • 在完成猜测之后会统计尝试次数

提示:

  • 在无限的机遇面前,默认情况下不适用将数字累加作为终止条件判断标准;相反地,则应采用基于布尔值(True或False)的直接判断方式。
  • 在决定是否启用数字累加功能时,默认情况下是根据所需的猜测次数来进行判断的。
  • 随机数支持以下几种生成方式:

import random
num = random.randint(1,100)

在这里插入图片描述
复制代码
    import random
    num = random.randint(1,100)  #获得随机整数
    
    
    
    flag = True #设置循环
    count = 0  #猜了几次
    
    while flag:
    guess_num = int(input('请输入数字猜大小:'))  # 获取输入数字
    count += 1 #每输入一次就猜了一次
    if guess_num == num:
        flag = False #猜对了就结束循环
    else: #猜错了,要么大,要么小
        if guess_num > num:
            print('大了')
        else:
            print('小了')
    
    #结束循环后输出猜的数字和次数
    print(f'猜了{count}次,猜对了底数是:{num}')
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

3.while循环的嵌套应用

语法

复制代码
    while 条件1:
    	条件1满足时,做的事件1
    	条件1满足时,做的事件2
    	条件1满足时,做的事件3
    	.....
    	while 条件2:
    		条件2满足时,做的事件1
    		条件2满足时,做的事件2
    		条件2满足时,做的事件3
    		.....
    
    
      
      
      
      
      
      
      
      
      
      
    
    代码解释
复制代码
    i= 1
    while i <=100:
    print(f'今天是第{i}天,准备表白......')
    j = 1
    while j<=10:
        print(f'送给小美第{j}只玫瑰花')
        j+=1
    print('小美,我喜欢你')
    i+=1
    
    print(f'坚持到第{i-1}天,表白成功')
    
    
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释
  • 在处理嵌套结构时,在编写代码时需要注意空格缩进。
  • 通过空格缩进来确定代码块的层级结构。
  • 合理设置条件以避免无限循环(除非确实需要如此)。

4.while循环的嵌套案例

案例:学习运用while循环结构来实现九九乘法表的打印

print(‘Hello’,end=‘’)
print(‘World’,end=‘’)

在这里插入图片描述
  1. 使用制表符可以使多行字符串实现对齐。
  2. 在字符串中存在一个特殊符号:\t。
  3. 该符号能够使我们的多行字符串实现对齐。
复制代码
    print('Hello World')
    print('ithema best' )
    
    print('Hello\tWorld')
    print('ithema\tbest' )
    
    
      
      
      
      
      
    
    代码解释
在这里插入图片描述

有了以上知识,就能打印九九乘法表了

复制代码
    i = 1
    while i <=9:
    j=1
    while j <=i:
        print(f'{j} * {i} = {i*j}\t',end='')
        j +=1
    i +=1
    print()
    
    
      
      
      
      
      
      
      
      
    
    代码解释
在这里插入图片描述

二、for循环

1.for循环的基础语法

1.1基础语法

除此之外,在Python中还提供了一种叫做for循环语句的结构。
基本上都能完成相同或相近的功能,
然而它们之间仍有一些细微的区别。

  • while循环的循环条件是定制化的,并自主设定循环条件
  • for循环属于一种轮询机制,并负责对一批内容逐一处理
在这里插入图片描述
在这里插入图片描述
复制代码
    for 临时变量 in 待处理数据集: 
    循环满足条件时执行的代码
    
    
      
      
    
    代码解释

从待处理数据集中:逐个取出数据
赋值给临时变量

复制代码
    # 定义字符串name
    name = 'itheima'
    # for循环处理字符串
    for x in name:
       print(x)
    
    
      
      
      
      
      
    
    代码解释
在这里插入图片描述

可以看出,在处理字符串时,for循环会逐字符提取其内容:逐字符提取
因此,在编程中常用术语中,for循环也被称作:遍历循环

*与While循环不同,在For循环中无法预设具体的运行条件。
*仅限于被处理的数据集内的内容,并按顺序进行操作。
*因此,在理论层面而言,在Python中使用For循环时无法实现无限次迭代(这源于所处理的数据集合不可能达到无穷大的规模)。

案例练习:统计字母‘a’的数量
创建字符串变量name,并将其赋值为:“itheima is a brand of itcast”。
通过for循环遍历该字符串,并计算该字符串中英文字母‘a’的数量。
提示:

外部可以声明一个整型变量用于累加计算;判断字符是否是字母'a'可以通过使用if语句配合比较运算符来确定字符是否等于字母'a'。

复制代码
    str = 'itheima is a brand of itcast'
    count = 0
    for i in str:
    if i == 'a':
        count +=1
    print(f'{str}中有共含有:{count}个字母a')
    
    
      
      
      
      
      
      
    
    代码解释
在这里插入图片描述

1.2 range语句

复制代码
    for 临时变量 in 待处理数据集(可迭代对象): 
        循环满足条件时执行的代码
    
    
      
      
    
    代码解释

在语法分析中,我们通常将'待处理的数据集合'称为'可迭代类型'。

目前我们仅教授了字符串类型的定义。
其他数据类型将在后续章节中得到深入讲解。

range语句语法

复制代码
    #语法1
    range(num)
    #获取一个从0开始,到num结束的数字序列(不含num本身)
    #如range(5)取得的数据是:[0, 1, 2, 3, 4]
    
    #语法2
    range(num1,num2)
    #获取一个从num1开始,到num2结束的数字序列(不含num2本身)
    #如range(5,10)取得的数据是:[5,6,7,8,9]
    
    #语法3:
    range(num1,num2,step)
    #获得一个从num1开始,到num2结束的数字序列(不含num2本身)
    #数字之间的步长,以step为准(step默认为1)
    #如,range(5, 10, 2)取得的数据是:[5, 7, 9]
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

例如:for循环遍历range序列

复制代码
    # for循环处理字符串
    for i in range(5): 
       print(i)
    
    
      
      
      
    
    代码解释

结果如下

在这里插入图片描述

练习案例:判断偶数值个数
设定数字变量num用于后续运算,并利用range函数生成1至num的所有整数列表。随后通过for循环遍历该列表期间,在计算过程中统计其中偶数值的数量。

  1. 序列可以使用:range(1, num)得到
  2. 偶数通过if来判断,判断数字余2是否为0即可
复制代码
    num = 100
    count = 0
    for i in range(1,100):
    if i % 2 == 0:
        count+=1
    print(f'1到{num}(不含{num}本身)范围内,有{count}个偶数')
    
    
      
      
      
      
      
      
    
    代码解释
在这里插入图片描述

2.for循环的嵌套应用

同while一样,for循环也支持嵌套使用
语法

复制代码
    for 临时变量 in 待处理数据集(序列):
    循环条件满足应做的事件1
    循环条件满足应做的事件2
    循环条件满足应做的事件N
    ...
    for 临时变量 in 待处理数据集(序列):
        循环条件满足应做的事件1
        循环条件满足应做的事件2
        循环条件满足应做的事件N
        ...
    
    
      
      
      
      
      
      
      
      
      
      
    
    代码解释

我们目前系统性地掌握了两种重要的编程结构——while循环和for循环。在编程逻辑中,while循环与for循环之间存在层次关系,在特定条件下可以实现互相调用。

练习案例-for循环打印九九乘法表
利用for循环结构生成九九乘法表的所有内容

  • 双重循环结构中,外层循环负责处理行数据
    • 可通过range函数生成数字序列,并结合for关键字构造循环结构
    • 内层for循环的范围由当前外层循环所决定
复制代码
    for i in range(1,10):
    for j in range(1,i+1):
        print(f'{j} * {i} = {i*j}\t',end='')
    print()
    
    
      
      
      
      
    
    代码解释
在这里插入图片描述

三、循环中断 : break和continue

Python提供continuebreak 关键字

用以对循环进行临时跳过直接结束

1.continue

continue关键字被用来中断当前的循环,并转而执行下一轮循环 continue同样适用于for和while两种类型的循环,在这两种情况下都发挥着相同的作用。

continue关键字只可以控制:它所在的循环临时中断

在这里插入图片描述

continue只能控制左图编号1的for循环
对编号2的for循环,无影响

2.break

break关键字被用来实现循环的终止。
break同样适用于for和while两种循环结构,并且均能达到相同的效果。

break关键字同样只可以控制:它所在的循环永久中断

在这里插入图片描述

reak只能控制左图编号1的循环
对编号2的循环,无影响

四、 综合案例

练习案例:发工资
某公司,账户余额有1W元,给20名员工发工资。

  • 员工编号依次为1至20,并由编号1开始逐一发放固定金额的薪资待遇

  • 在发放工资的过程中,在财务部门会根据员工的工作绩效评分(采用1到10分制,并通过随机的方式确定)

  • 当所有员工的基本薪资发放完毕后将不再继续进行后续分配流程

  • continue用于跳过员工的作用,在程序流程中执行跳转操作;break则立即终止当前循环的执行过程。

  • 在进行if条件判断时,请记住在发完工资后确保余额减少1000。

复制代码
    import random
    money = 10000 #总钱数
    employee_num=1 #员工编号
    
    for employee_num in range(1,21):
    performance = random.randint(1, 10)  # 绩效
    if performance < 5:
        print(f'员工{employee_num},绩效分{performance},低于5,不发工资,下一位')
        continue
    if money == 0:
        print('工资发完了,下个月领吧')
        break
    money -= 1000
    print(f'向员工{employee_num}发放工资1000元,账户余额还剩{money}元')
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~