Python小白入门指南➖循环语句

Python小白入门指南➖循环语句

关于作者

  • 作者介绍

🍓 博客主页:作者主页

🍓 简介:JAVA领域优质创作者🥇、一名初入职场小白👨‍💻、在校期间参加各种省赛、国赛,斩获一系列荣誉 🏆、阿里云专家博主51CTO专家博主

🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻


循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。

为什么学习循环语句

循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础:循环广告牌、视频轮播、图片轮播、动态壁纸、批量修图、音乐轮播、大喇叭喊话、视频监控。

while循环的基础语法

python 复制代码
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...

如果现在让你打印100遍,相同的内容,该怎么办呢?

使用循环语句简单搞定

python 复制代码
i = 0
while i < 100:    
    print("我喜欢你")    
    i += 1
  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环
  2. 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
  3. 空格缩进和if判断一样,都需要设置

练习案例:求1-100的和

需求:通过while循环,计算从1累加到100的和

提示:

  1. 终止条件不要忘记,设置为确保while循环100次
  2. 确保累加的数字,从1开始,到100结束
python 复制代码
sum = 0
i = 0
while i <= 100:
    sum += i
    i += 1

print(f"1-100的和 {sum}")

while循环的基础案例

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

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

提示:

  • 无限次机会,终止条件不适合用数字累加来判断,可以考虑布尔类型本身(True or False)
  • 需要提示几次猜中,就需要提供数字累加功能
  • 随机数可以使用:random
python 复制代码
random_num = random.randint(1, 100)
print(f"{random_num}")
flag = 1
while flag:
    input_num = int(input("请输入猜想的数字:"))
    if input_num == random_num:
        flag = 0
        print("恭喜你猜对了!")
    elif input_num < random_num:
        print("猜小了!")
    else:
        print("猜大了!")

while循环的嵌套应用

基础语法:

python 复制代码
while 条件1:
	条件1满足时,做的事情1
    条件1满足时,做的事情2
    条件1满足时,做的事情3
	#...(省略)...
	while 条件2:
		条件2满足时,做的事情1
    	条件2满足时,做的事情2
    	条件2满足时,做的事情3
		#...(省略)...

要追求女神100天,每天都会当舔狗去给女神送2杯豆浆

python 复制代码
i=1
while i <= 100:
    print(f"今天是给女神当舔狗第{i}天,准备表白......")
    j= 1
    while j <= 2:
        print(f"送给女神第{j}杯豆浆")
        j += 1
    i += 1

print(f"坚持到第{i - 1}天,女神,我不想当舔狗了,我喜欢你")

注意:同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。基于空格缩进来决定层次关系。注意条件的设置,避免出现无限循环(除非真的需要无限循环)。

while循环的嵌套案例

补充知识-print输出不换行

默认print语句输出内容会自动换行,在即将完成的案例中,我们需要使用print语句,输出不换行的功能,非常简单。在print语句中,加上 end='' 即可输出不换行了

python 复制代码
print("我是舔狗")
print("舔到一无所有了!!!!!!!")

print("我是舔狗", end='')
print("舔到一无所有了!!!!!!!", end='')

补充知识-制表符\t

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

python 复制代码
print("Hello 舔狗")
print("HelloOOOOOOOOO 使劲舔~~~~~~")

print("Hello \t\t\t舔狗")
print("HelloOOOOOOOOO \t使劲舔~~~~~~")

练习案例-打印九九乘法表

通过while循环,输出如下九九乘法表内容

提示:

  • 2层循环,外层控制行,内层控制列
  • 外层循环和内存循环的累加数字变量,用以辅助输出乘法表的数值
python 复制代码
i = 1
while i <= 9:
    j = 1
    while j <= 9:
        if j <= i :
            print(f"{j} * {i} = {i*j}\t",end="") #在print语句中,加上 end='' 即可输出不换行了
        j += 1
    i+=1
    print()

for循环的基础语法

基础语法

除了while循环语句外,Python同样提供了for循环语句。

两者能完成的功能基本差不多,但仍有一些区别:

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种"轮询"机制,是对一批内容进行"逐个处理"
生活中的for循环 程序中的for循环
洗碗,一个个洗干净
剥蒜,一个个剥干净
送快递,一个个送达
吃瓜子,一个个吃下
。。。。。。。。。。。 for 临时变量 in 待处理数据集:
markdown 复制代码
    循环满足条件时执行的代码 |

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

遍历字符串

python 复制代码
# 定义字符串name
name = "clearlove7 Study python3"
# for循环处理字符串
for x in name: 
       print(x)
        
        
c
l
e
a
r
l
o
v
e
7
 
S
t
u
d
y
 
p
y
t
h
o
n
3
#可以看出,for循环是将字符串的内容:依次取出。所以,for循环也被称之为:遍历循环

同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。 所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)。

range语句

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

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

  • 字符串
  • 列表
  • 元组

for循环语句,本质上是遍历:可迭代对象。 尽管除字符串外,其它可迭代类型目前没学习到,但不妨碍我们通过学习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序列

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

range语句的注意事项

  • 语法1从0开始,到num结束(不含num本身)
  • 语法2从num1开始,到num2结束(不含num2本身)
  • 语法3从num1开始,到num2结束(不含num2本身),步长以step值为准

变量作用域

for循环的变量作用域

python 复制代码
for 临时变量 in 待处理数据集:
	循环满足条件时执行的代码

回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量 为什么是临时的呢?临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部。 如果在for循环外部访问临时变量:

  • 实际上是可以访问到的
  • 在编程规范上,是不允许、不建议这么做的

如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义

python 复制代码
i = 0  #<-----看这一行
for i in range(5):
    print(i)
    
print(i)

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

for循环的嵌套应用

语法:

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

练习案例-for循环打印九九乘法表

python 复制代码
"""
演示for循环打印九九乘法表
"""

# 通过外层循环控制行数
for i in range(1, 10):
    # 通过内层循环控制每一行的数据
    for j in range(1, i + 1):
        # 在内层循环中输出每一行的内容
        print(f"{j} * {i} = {j * i}\t", end='')

    # 外层循环可以通过print输出一个回车符
    print()

循环中断 : break和continue

思考:无论是while循环或是for循环,都是重复性的执行特定操作。在这个重复的过程中,会出现一些其它情况让我们不得不:

  • 暂时跳过某次循环,直接进行下一次
  • 提前退出循环,不在继续

对于这种场景,Python提供continue和break关键字。用以对循环进行临时跳过和直接结束。

  • continue关键字用于:中断本次循环,直接进入下一次循环

  • continue可以用于: for循环和while循环,效果一致

  • break关键字用于:直接结束所在循环

  • break可以用于: for循环和while循环,效果一致

综合案例

练习案例:发工资

某公司,账户余额有1W元,给20名员工发工资。员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元。领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位。如果工资发完了,结束发工资。

提示:

  • continue用于跳过员工,break直接结束发工资
  • if判断余额,不要忘记发完工资后,余额减少1000哦
python 复制代码
import random
money = 10000
num = range(10, 21)
print(num)
for i in num:
    score = random.randint(1, 10)
    if score < 5:
        print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
        continue
    else:
        money -= 1000
        print(f"向员工{i}发放工资1000元,账户余额还剩余{money}元")
        if money == 0:
            print("工资发完了,下个月领取吧。")
        	break
相关推荐
盖世英雄酱5813623 分钟前
时间设置的是23点59分59秒,数据库却存的是第二天00:00:00
java·数据库·后端
安迪小宝42 分钟前
16 celery集成其他工具
数据库·python·sqlite·celery
成都犀牛1 小时前
工作流和Agent 的区别与联系
人工智能·python·深度学习·神经网络·agent·工作流
爷_1 小时前
Nest.js 最佳实践:异步上下文(Context)实现自动填充
前端·javascript·后端
寄思~1 小时前
Python学习笔记:错误和异常处理
开发语言·笔记·python·学习
是紫焅呢1 小时前
O数据可视化基础.py
python·青少年编程·信息可视化·数据分析·学习方法·数据可视化·visual studio code
追逐时光者1 小时前
提高 .NET 编程效率的 Visual Studio 使用技巧和建议!
后端·.net·visual studio
繢鴻2 小时前
Python环境搭建
开发语言·python
夕颜1112 小时前
Cursor ssh 登录失败解决记录
后端
飞鸟malred2 小时前
go语言快速入门
开发语言·后端·golang