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

第三章 循环语句

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语句输出内容会自动换行

在这里插入图片描述

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

在这里插入图片描述

制表符\t

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

在这里插入图片描述


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空内容,就是输出一个换行

在这里插入图片描述

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.变量作用域

在这里插入图片描述

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

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

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

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

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

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

  • 实际上是可以访问到的
  • 在编程规范上,是不允许、不建议这么做的
    在这里插入图片描述

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

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

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

在这里插入图片描述

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的时候跳,后面的照样执行
  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
python源码 零基础入门学习Python+课件源码资料: 002用Python设计第一个游戏(课件+源代码) 004改进我们的小游戏(课件+源代码) 005闲聊之Python的数据类型(课件+源代码) 007了不起的分支和循环(课件) 008了不起的分支和循环2(课件+源代码) 009了不起的分支和循环3(课件+源代码) 017函数:Python的乐高积木(课件+源代码) 019函数:我的地盘听我的(课件+源代码) 022函数:递归是神马(课件+源代码) 023递归:这帮小兔崽子(课件+源代码) 024递归:汉诺塔(课件+源代码) 028文件:因为懂你,所以永恒(课件+源代码) 029文件:一个任务(课件+源代码) 031永久存储:腌制一缸美味的泡菜(课件+源代码) 034丰富的else语句及简洁的with语句(课件+源代码) 034丰富的else语句及简洁的with语句(课件+源代码)(1) 036类和对象:给大家介绍对象(课件 源代码) 037类和对象:面向对象编程(课件 源代码) 038类和对象:继承(课件 源代码) 039类和对象:拾遗(课件 源代码) 045魔法方法:属性访问(课件 源代码) 046魔法方法:描述符(Property的原理)(课件 源代码) 047魔法方法:定制序列(课件 源代码) 048魔法方法:迭代器(课件 源代码) 049乱入:生成器(课件) 050模块:模块就是程序(课件 源代码) 051模块:__name__=_'__main___'、搜索路径和包(课件 源代码) 052模块:像个极客一样去思考(课件) 053论一只爬虫的自我修养(课件) 054论一只爬虫的自我修养2:实战(课件 源代码) 055论一只爬虫的自我修养3:隐藏(课件 源代码) 056论一只爬虫的自我修养4:OOXX(源代码) 062论一只爬虫的自我修养10:安装Scrapy(课件+软件包) 063论一只爬虫的自我修养11:Scrapy框架之初窥门径(课件 源代码) 064GUI的终极选择:Tkinter(课件 源代码) 065GUI的终极选择:Tkinter2(源代码) 066GUI的终极选择:Tkinter3(源代码) 067GUI的终极选择:Tkinter4(源代码) 068GUI的终极选择:Tkinter5(源代码) 069GUI的终极选择:Tkinter6(源代码) 070GUI的终极选择:Tkinter7(源代码) 071GUI的终极选择:Tkinter8(源代码) 072GUI的终极选择:Tkinter9(源代码) 073GUI的终极选择:Tkinter10(源代码) 074GUI的终极选择:Tkinter11(源代码) 075GUI的终极选择:Tkinter12(源代码) 076GUI的终极选择:Tkinter13(源代码) 077GUI的终极选择:Tkinter14(源代码) 078Pygame:初次见面,请大家多多关照(源代码) 080Pygame:事件(源代码) 081Pygame:提高游戏的颜值1(源代码) 082Pygame:提高游戏的颜值2(源代码) 083Pygame:提高游戏的颜值3(源代码) 084Pygame:基本图形绘制(源代码) 085Pygame:动画精灵(源代码) 086Pygame:碰撞检测(源代码) 087Pygame:播放声音和音效(课件 源代码) 088Pygame:摩擦摩擦(源代码) 089Pygame:游戏胜利(源代码) 090Pygame:飞机大战1(源代码) 091Pygame:飞机大战2(源代码) 093Pygame:飞机大战4(源代码) 094Pygame:飞机大战5(源代码) 095Pygame:飞机大战6(源代码) 096Pygame:飞机大战7(源代码)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘猫0.o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值