Python循环语句

while 循环的基础语法

while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ……

注意:

1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环

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

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

while 循环的基础案例

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

#无限次机会,猜到数字
import random
#1-100之间的随机数
num = random.randint(1,100)
flag = True
count = 0
while flag:
   gutss = int(input("请输入猜测的数字:"))
   count+=1
   if gutss == num:
       print("猜中了!")
       flag = False
   elif gutss > num:
       print("猜大了")
   else:
    print("猜小了")
print(f"用了{count}次,猜中了随机数字{num}")

输出结果:
D:\Study\PythonManage\.venv\Scripts\python.exe D:\Study\PythonManage\Demo\Demo1.py 
请输入猜测的数字:50
猜小了
请输入猜测的数字:75
猜小了
请输入猜测的数字:85
猜小了
请输入猜测的数字:95
猜大了
请输入猜测的数字:90
猜大了
请输入猜测的数字:86
猜小了
请输入猜测的数字:88
猜大了
请输入猜测的数字:87
猜中了!
用了8次,猜中了随机数字87

while 循环的嵌套应用

while 条件1:
    条件1满足时,做的事情1
    条件1满足时,做的事情2
    条件1满足时,做的事情3
    ……
    while 条件2:
        条件2满足时,做的事情1
        条件2满足时,做的事情2
        条件2满足时,做的事情3
        ……

注意:

同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。

基于空格缩进来决定层次关系

注意条件的设置,避免出现无限循环(除非真的需要无限循环)

while 循环的嵌套案例

打印 99 乘法表

#循环打印99乘法表
i = 1   #控制列
while i <= 9:
    j = 1    #控制行
    while j <= i:
        print(f"{j}*{i}={i*j}\t", end=' ')  #输出表达式
        j = j + 1
    print("")   #每个行后换行
    i = i + 1

补充:

print输出不换行

默认print语句输出内容会自动换行,只要在 print 语句中,加上 end='' 即可输出不换行

print("Hello World",end='')
print('1')
print('-------------------')
print("Hello World")
print('1')

输出结果:
D:\Study\PythonManage\.venv\Scripts\python.exe D:\Study\PythonManage\Demo\Demo1.py 
Hello World1
-------------------
Hello World
1

制表符 \t

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

for 循环的基础语法

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

两者能完成的功能基本差不多,但仍有一些区别:while循环的循环条件是自定义的,自行控制循环条件for循环是一种”轮询”机制,是对一批内容进行”逐个处理”

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

注意:

同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。

所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)

for循环中的临时变量,其作用域限定为:循环内;这种限定:是编程规范的限定,而非强制限定不遵守也能正常运行,但是不建议这样做如需访问临时变量,可以预先在循环外定义它。

range 语句

range(num): 获取一个从0开始,到num结束的数字序列(不含num本身)

如range(4)取得的数据是:[0, 1, 2, 3]

range(num1,num2):获取一个从 num1 开始,到 num2 结束的数字序列,不含 num2 本身

如 range(1,4)取得的数据是:[1,2,3]

range(num1,num2,step):获取一个从 num1 开始,到 num2 结束的数字序列,数字的步长,已 step 为准,默认为 1, 不含 num2 本身

如 range(1,10,2)取得的数据是:[1,3,4,7,9]

for 循环的嵌套应用

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

for 循环的嵌套和 while 循环的嵌套一样,都是通过缩进确定层次关系的。

通过 for 循环打印 99 乘法表

#循环打印99乘法表
i = 1   #控制列
for i in range(1,10):
    j = 1    #控制行
    for j in range(j,i+1):
        print(f"{j}*{i}={i*j}\t", end=' ')  #输出表达式
        j = j + 1
    print("")   #每个行后换行
    i = i + 1

循环中断:break,continue

for 循环和 while 循环都是重复性的执行特定的语句,是否可以通过特定方式跳过或提前推出当前循环呢?

对于这种情况,Python 提供了 break、continue 关键字,用来对循环进行直接结束和临时跳过。

continue:中断本次循环,直接进入下一次循环。只可控制 continue 所在行所处的循环,如果在嵌套循环的内层循环,不能跳过外层循环。

break:直接结束所在循环。只可控制 break 所在行所处的循环,如果在嵌套循环的内层循环,不能终止外层循环。

案例

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

员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元

领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位

如果工资发完了,结束发工资。

import random
#初始化薪水10000
salary = 10000
#根据工号循环发工资
money = 1000
for i in range(1,21):
    #获取当前员工的绩效
    kh = random.randint(1,10)
    if kh < 5:
        continue   #考核分数低于5不发工资,下一位
    salary -= money
    if salary < 1000 and salary >= 0:
        print(f"工号为{i}的员工领取工资{money}")
    elif salary >= 1000:
        print(f"工号为{i}的员工领取工资{money}")
    else:
        print("工资已发完!")
        break

输出结果:
D:\Study\PythonManage\.venv\Scripts\python.exe D:\Study\PythonManage\Demo\Demo1.py 
工号为1的员工领取工资1000
工号为2的员工领取工资1000
工号为3的员工领取工资1000
工号为4的员工领取工资1000
工号为5的员工领取工资1000
工号为8的员工领取工资1000
工号为11的员工领取工资1000
工号为13的员工领取工资1000
工号为15的员工领取工资1000
工号为16的员工领取工资1000
工资已发完!

相关文章

Python输出语句print()

Python中的输出语句主要通过内置函数 print() 实现,它可以灵活输出文本、变量、表达式结果等内容到控制台或其他文件。以下是详细介绍及示例:一、print()基本语法print(*object...

python中必须掌握的20个核心函数—print()详解

print()函数是Python中最基础、最常用的函数之一,也是每个Python初学者最先接触的函数。本文将全面详细地解析print()函数的各种用法和特性。1. print()函数的基本用法1.1...

python从入门到脱坑 输入与输出——print()函数

大家好今天开始系统的讲解一些入门课程,遇到不会的也不用想太多,跟着写一遍,学习到新内容是你就会明白.以下是针对Python初学者的print()函数详解,从基础到实用技巧,配合清晰示例:一、最基础用法...

Python 中的循环语句有哪些?看看全不全

Python 提供了两种主要的循环结构:`for` 循环和 `while` 循环。以下是它们的详细介绍和示例: 1. for 循环for 循环用于遍历可迭代对象(如列表、元组、字符串、字典、集合等)中...

Python打印日志不能只会print,快来熟悉pprint

动动小手,点击关注 ,感谢您的阅读,您的关注是我最大的动力!!!! 在 Python 开发中,打印复杂数据结构(如嵌套字典、多层列表)时,默认的print()函数往往输出为一行,难以快速读取。而pp...