【Python从零基础到入门】第三章 循环语句

第三章 循环语句

文章目录

  • 第三章 循环语句
    • 1.while循环
      • 1.基本语法
      • 2.基础案例
      • 3.嵌套应用
      • 4.嵌套案例
    • 2.for 循环
      • 1.for循环的基本语法
      • 2.range语句
      • 3.变量作用域
      • 4.for循环的嵌套应用
      • 5.循环中断:break ,continue

1.while循环

1.基本语法

while 条件:
	执行的事情1
    执行的事情2
    执行的事情3
    
#示例代码    
i = 0
while i<100:
    print("hello,world")
    i+=1
  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环

  2. 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环

  3. 空格缩进和if判断一样,都需要设置

2.基础案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

  • 无限次机会,直到猜中为止
  • 每一次猜不中,会提示大了或小了
  • 猜完数字后,提示猜了几次

提示:
无限次机会,终止条件不适合用数字累加来判断,可以考虑布尔类型本身(True or False)
需要提示几次猜中,就需要提供数字累加功能

"""
演示while循环的基础案例 - 猜数字
"""

# 获取范围在1-100的随机数字
import random
num = random.randint(1, 100)
# 定义一个变量,记录总共猜测了多少次
count = 0

# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
    guess_num = int(input("请输入你猜测的数字:"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置为False就是终止循环的条件
        flag = False
    else:
        if guess_num > num:
            print("你猜的大了")
        else:
            print("你猜的小了")

print(f"你总共猜测了{count}次")

3.嵌套应用

while 条件1:
	执行的事情1
    执行的事情2
    执行的事情3
    while 条件2:
        执行的事情1
        执行的事情2
        执行的事情3

嵌套循环的使用难点:循环条件的控制,层次越多越复杂,需要细心+耐心

"""
演示while循环的嵌套使用
嵌套循环需要注意的地方:
	1.注意条件的控制,避免无限循环
	2.多层嵌套,主要空格缩进来确定层次关系

"""

# 外层:表白100天的控制
# 内层:每天的表白都送10只玫瑰花的控制

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}天,表白成功")

补充知识:

end = ‘ ’

  1. 默认print语句输出内容会自动换行

【Python从零基础到入门】第三章 循环语句_第1张图片

  1. 在print语句中,加上 end=’’ 即可输出不换行

【Python从零基础到入门】第三章 循环语句_第2张图片

制表符\t

在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。
它可以让我们的多行字符串进行对齐。

【Python从零基础到入门】第三章 循环语句_第3张图片


4.嵌套案例

"""
演示使用while的嵌套循环
打印输出九九乘法表
"""

# 定义外层循环的控制变量
i = 1
while i <= 9:

    # 定义内层循环的控制变量
    j = 1
    while j <= i:
        # 内层循环的print语句,不要换行,通过\t制表符进行对齐
        print(f"{j} * {i} = {j * i}\t", end='')
        j += 1

    i += 1
    print()     # print空内容,就是输出一个换行

【Python从零基础到入门】第三章 循环语句_第4张图片

2.for 循环

1.for循环的基本语法

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种”轮询”机制,是对一批内容进行”逐个处理”
  • 同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
#从待处理数据集中:逐个取出数据,赋值给临时变量
语法:
for 临时变量 in 待处理数据集: 
        循环满足条件时执行的代码

# 定义字符串name
name = ”itheima”

# for循环处理字符串
for x in name: 
       print(x)

练习题

"""
演示for循环的练习题:数一数有几个a
"""
# 统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"

# 定义一个变量,用来统计有多少个a
count = 0

# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
    if x == "a":
        count += 1

print(f"被统计的字符串中有{count}个a")

2.range语句

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

语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:

  • 字符串
  • 列表
  • 元组等
    目前我们只学习了字符串类型,其余类型在后续章节会详细学习它们

for循环语句,本质上是遍历:可迭代对象。

语法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 i in range(5): 
       print(i)
        
输出:
0
1
2
3
4

3.变量作用域

【Python从零基础到入门】第三章 循环语句_第5张图片

如图代码,思考一下:红框中的print语句,能否访问到变量 i ?

规范上:不允许
实际上:可以

回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量

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

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部

如果在for循环外部访问临时变量:

  • 实际上是可以访问到的
  • 在编程规范上,是不允许、不建议这么做的
    【Python从零基础到入门】第三章 循环语句_第6张图片

如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义(一般不要这样做,因为i变量的取值如下图所示,并不能改变多少)

如图,每一次循环的时候,都会将取出的值赋予i变量。

  • 由于i变量是在循环之前(外)定义的
  • 在循环外访问i变量是合理的、允许的

【Python从零基础到入门】第三章 循环语句_第7张图片

4.for循环的嵌套应用

"""
演示嵌套应用for循环
"""

# 坚持表白100天,每天都送10朵花
# range
i = 0
for i in range(1, 101):
    print(f"今天是向小美表白的第{i}天,加油坚持。")

    # 写内层的循环了
    for j in range(1, 11):
        print(f"给小美送的第{j}朵玫瑰花")

    print("小美我喜欢你")

print(f"第{i}天,表白成功")

5.循环中断:break ,continue

continue

  • 暂时跳过某次循环,直接进行下一次

break

  • 提前退出循环,不再继续
  1. continue和break,在for和while循环中作用一致

  2. 在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

#每天送5朵花,送10天
i = 1
j = 1
while i<=10:
    print(f"今天是送花的第{i}天")
    i+=1
    while j<=5:
        print(f"这是送的第{j}朵花")
        j+=1
        if j==3:
            break #如果是break,到达3之后,后面全部跳过
                  #如果是continue,只会在等于3的时候跳,后面的照样执行

你可能感兴趣的:(Python从零基础到入门,python,开发语言,笔记,经验分享)