Python3之for和while循环语句

本文详细介绍了Python3中的for和while循环语句,包括while循环的无限循环模式、while...else结构、for循环的遍历方式、range()函数的使用,以及break、continue语句在循环中的作用。同时讲解了for...else和while...else的区别,并提到了pass语句和enumerate函数在遍历序列时的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python3的循环语句包括for和while,循环语句的流程图如下:

1、while循环

while循环语句和if条件语句一样,需要注意冒号(:)和缩进,Python3中没有do...while语句

a、形式

while 判断条件(condition):
    执行语句(statements)……

b、流程图

c、无限循环

如果while循环语句的条件表达式结果一直为True,则进入无限循环模式,无限循环模式常见于服务器上客户端的实时请求。使用Ctrl+C退出当前的无限循环模式

d、while...else语句

while...else中,当while的条件语句为False时,执行else的语句块

while...else语句格式:

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
"""
随便输入一个整数N,判断是否为正数,while循环实现0 - N的和
"""
# 方法一:使用while语句
Num = int(input("请输入一个数:"))
number = 0
Sum = 0
if isinstance(Num , int ) and ( Num >= 0):
    while(number <= Num):
        Sum = Sum + number
        number +=1
    # 通过代码块的缩进跳出while循环
    print("0到%d的和为:" % Num , Sum)
else:
    print("请输入一个正整数")


# 方法二:使用while...else语句
Num = int(input("请输入一个数:"))
number = 0
Sum = 0
if isinstance(Num , int ) and ( Num >= 0):
    while(number <= Num):
        Sum = Sum + number
        number +=1
    # 通过else语句跳出while循环
    else:
        print("0到%d的和为:" % Num , Sum)
else:
    print("请输入一个正整数")

2、for循环

python中for循环多用于遍历序列,如字符串、列表、元组、集合和字典等,其格式一般为:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

流程图:

 

例子:

"""
输入一个列表,判断列表是否为空,遍历列表,直到发现列表中包含元素a,打印出元素a前的所有元素
"""
# 方法一:通过range(len(seq))遍历序列的索引
listA = ['KG' , 'KD' , 'Curry' , 'Kobe' ,'LBJ' ]
#listA = list()
if len(listA) >= 1:
    for i in range(len(listA)):
        if listA [i] is 'Kobe':
            print("%s 是我最喜欢的球星" % listA[i])
            break
        else:
            print("listA中存在的数据为:" , listA[i])
else:
    print("listA是一个空列表")

# 方法二:遍历列表中元素
listA = ['KG' , 'KD' , 'Curry' , 'Kobe' ,'LBJ' ]
if len(listA) >= 1:
    for lista in listA:
        if lista == 'Kobe':
            print("%s 是我最喜欢的球星" % lista)
            break
        else:
            print("listA中存在的数据为:" , lista)
else:
    print("listA是一个空列表")
listA中存在的数据为: KG
listA中存在的数据为: KD
listA中存在的数据为: Curry
Kobe 是我最喜欢的球星

3、range()函数

range()使用场景如下:

a、遍历数字序列

b、指定序列的起始区间及步长

c、遍历序列索引

d、创建整型列表

"""
range()函数使用场景
a、遍历数字序列
b、指定序列的起始区间及步长
c、遍历序列索引
d、创建整型列表
"""
# a、遍历数字序列
for i in range(5):
    print("遍历数字序列:" , i)
#b 、指定序列的起始区间及步长
for i in range(10 , 20 , 2):
    print("指定序列的起始区间及步长:" , i)
# c、遍历序列索引
listA = ['KG' , 'KD' , 'Curry' , 'Kobe' ,'LBJ' ]
for i in range(len(listA)):
    print("遍历序列索引:" , listA[i])
# d、创建整型列表
listA  = list(range(10))
print("创建整型列表listA:" , listA)
遍历数字序列: 0
遍历数字序列: 1
遍历数字序列: 2
遍历数字序列: 3
遍历数字序列: 4
指定序列的起始区间及步长: 10
指定序列的起始区间及步长: 12
指定序列的起始区间及步长: 14
指定序列的起始区间及步长: 16
指定序列的起始区间及步长: 18
遍历序列索引: KG
遍历序列索引: KD
遍历序列索引: Curry
遍历序列索引: Kobe
遍历序列索引: LBJ
创建整型列表listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

4、break和continue语句及循环中的 else 子句

4.1、break:跳出当前循环体语句,执行循环体外代码

break可以跳出 for 和 while 循环体。如果从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

 

4.2、continue语句:跳过当前循环体中的剩余语句,然后继续进行下一轮循环体语句

注意:循环中如果使用continue关键字,在使用关键字之前,需要确认循环的计数器是否修改,否则可能出现死循环

# 循环中如果使用continue关键字,在使用关键字之前,需要确认循环的计数器是否修改,否则可能出现死循环
i = 0
while i <= 5:
    if i > 3:
        print("执行语句")
        # 使用continue关键字之前,修改i的值,否则出现死循环
        i +=1
        continue
    print(i)
    i +=1
0
1
2
3
执行语句
执行语句

 4.3、break和continue执行过程:

例:

# while循环使用break:
number = 5
while number > 0:
    number -= 1
    # 当number == 2时,跳出while循环,执行print('循环结束')语句
    if number == 2:
        break
    print(number)
print('while循环使用break,循环结束')

#while循环使用continue:
number = 5
while number > 0:
    number -= 1
    # 当number == 2时,跳出while循环,执行print('循环结束')语句
    if number == 2:
        continue
    print(number)
print('while循环使用continue,循环结束')

# for循环使用break
for letter in 'Runoob':
    # 遇到o字符时跳出for循环体,结束循环
    if letter == 'o':
        break
    print ('for循环使用break,当前字母为 :', letter)

# for循环使用continue
for i in range(10):
    # 遇到偶数时跳过print(i)语句,继续执行下一个循环
    if (i % 2 == 0):
        continue
    print("for循环使用continue" , i)
4
3
while循环使用break,循环结束
4
3
1
0
while循环使用continue,循环结束
for循环使用break,当前字母为 : R
for循环使用break,当前字母为 : u
for循环使用break,当前字母为 : n
for循环使用continue 1
for循环使用continue 3
for循环使用continue 5
for循环使用continue 7
for循环使用continue 9

4.4、for...else和while...else使用break

while 循环语句和 for 循环语句使用 else 的区别:

  • 1、如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,执行 else 语句
  • 2、如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行

for...else和while...else中的else 子句在穷尽列表(for循环)或条件变为 false (while循环)导致循环终止时被执行,但如果循环是被 break终止时不执行else中的else 子句 

# for...else语句被break中断,else语句不被执行
for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            #使用break跳出第二个for循环,else语句不被执行
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')
2  是质数
3  是质数
4 等于 2 * 2
5  是质数
6 等于 2 * 3
7  是质数
8 等于 2 * 4
9 等于 3 * 3
# for...else语句在第二个for循环穷尽时,执行else语句
for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            #break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')
2  是质数
3  是质数
4 等于 2 * 2
4  是质数
5  是质数
6 等于 2 * 3
6 等于 3 * 2
6  是质数
7  是质数
8 等于 2 * 4
8 等于 4 * 2
8  是质数
9 等于 3 * 3
9  是质数

4.5、pass语句

一般pass语句是空语句,不做任何操作,仅作占位使用,为了保持程序结构的完整性

# pass语句仅作占位使用,无实际意义
for letter in 'Runoob':
    if letter == 'o':
        pass
        print ('执行 pass 块')
    print ('当前字母 :', letter)
print ("Good bye")
当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye

4.6、内置 enumerate 函数遍历序列

使用内置 enumerate(列举、枚举的意思) 函数可遍历序列,打印出序列的索引和序列中元素的值,使用方法如下:

for index, item in enumerate(sequence):
    process(index, item)

例:

# 使用内置 enumerate(列举、枚举的意思) 函数可遍历序列,打印出序列的索引和序列中元素的值
listA = list(range(10 , 20 , 2))
for i , j in enumerate(listA):
    print("listA中的索引为:" , i , '---' "索引对应的元素为:" , j )
listA中的索引为: 0 ---索引对应的元素为: 10
listA中的索引为: 1 ---索引对应的元素为: 12
listA中的索引为: 2 ---索引对应的元素为: 14
listA中的索引为: 3 ---索引对应的元素为: 16
listA中的索引为: 4 ---索引对应的元素为: 18

 

Python3中,whilefor循环是两种常用的循环语句while循环是基于条件判断的循环语句。它会在满足条件时重复执行一段代码块,直到条件不再满足为止。在使用while循环时,首先需要定义一个循环条件,当这个条件为True时,代码块中的语句就会被执行。执行完一次代码块后,再次检查条件是否为True,如果为True,则继续执行,直到条件不再为True时,循环停止。 例如,以下是一个使用while循环计算1到10之间整数的示例代码: ``` sum = 0 i = 1 while i <= 10: sum += i i += 1 print("1到10之间的整数为:", sum) ``` 在上述代码中,初始值sum为0,i为1。在每次循环中,sum增加i的值,i增加1。当i大于10时,循环停止,打印出计算结果。 而for循环则是基于序列(如列表、字符串、元组等)的循环语句,它会遍历序列中的元素,并针对每个元素执行一段代码块。在使用for循环时,通常会使用in关键字指定一个序列,for循环会依次遍历序列中的元素并执行代码块。 例如,以下是一个使用for循环打印列表中元素的示例代码: ``` fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` 在上述代码中,定义了一个列表fruits,for循环会依次将列表中的元素赋值给fruit变量,并执行代码块中的打印语句。执行结果会依次打印出列表中的元素:"apple"、"banana""cherry"。 总结起来,while循环适用于在未知循环次数的情况下,根据条件判断来控制循环执行;而for循环适用于已知循环次数的情况下,遍历序列中的元素进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值