一、循环语句之while【重点掌握】
1.概念
在生活中,循环指的是一个现象周期性或者重复性的出现
在编程中,在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环,这段被重复执行的代码被称为循环体
Python中提供的循环语句有:while语句和for语句
2.基本语法
语法:
while 表达式: 语句
说明:当程序在从上往下执行的过程中,遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句;执行完语句,再去计算表达式的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句。。。如此循环往复,直到表达式的值为假,整个循环才停止
# 书写循环语句需要考虑的核心:控制循环的次数,否则容易形成死循环 """ 语法: if 条件: 语句 while 条件: 语句 """ # 1.if和while之间的区别 # if 1: # print("hello~~world") # while 1: # print("hello world~~~1111") # 注意:在条件成立的前提下,if语句只会执行一次,但是while语句会被执行多次 # 2.while的基本语法 # 注意:书写while语句,主要关注条件,循环在合适的时机需要停下来 # 需求:打印10遍hello world # print("hello~~world") # print("hello~~world") # print("hello~~world") # print("hello~~world") # print("hello~~world") # a.初始化表达式,注意:n的初始值可以随意,但是为了方便计算,一般涉及到次数,建议使用0 n = 0 # b.条件表达式 while n < 10: # c.循环体 print("hello~~world") # d.循环之后的操作表达式 n += 1 n = 9 # b.条件表达式 while n >= 0: # c.循环体 print("hello~~world") # d.循环之后的操作表达式 n -= 1
3.使用练习
# 1.打印0~9的数字 n1 = 0 while n1 <= 9: print(n1) n1 += 1 # 2.求1~100之间所有整数的和 n2 = 1 total2 = 0 while n2 <= 100: total2 += n2 n2 += 1 print(total2) # 3.求1~100之间所有偶数的和 # 方式一 n31 = 1 total31 = 0 while n31 <= 100: if n31 % 2 == 0: total31 += n31 n31 += 1 print(total31) # 方式二 n32 = 2 total32 = 0 while n32 <= 100: total32 += n32 n32 += 2 print(total32) # 4.求1-2+3-4......+97-98+99-100的值 n4 = 1 total4 = 0 while n4 <= 100: if n4 % 2 == 0: total4 -= n4 else: total4 += n4 n4 += 1 print(total4) # 5.统计1~100之间能被3或6整除的数的个数 n5 = 1 count5 = 0 while n5 <= 100: if n5 % 3 == 0 or n5 % 6 == 0: count5 += 1 n5 += 1 print(count5) # 6.求10的阶乘 n6 = 1 total6 = 1 while n6 <= 10: total6 *= n6 n6 += 1 print(total6)
4.死循环和else分支
死循环:在循环语句中,表达式永远为真的循环
语法:
while 表达式: 语句1 else: 语句2
说明:和if-else语句中的作用一样,表示当表达式的值为假的时候,执行else后面的语句2
# 1.while死循环 # while 1: # print("111") # # while True: # print("2222") # 2.while-else # a.默认情况下不管while语句的条件是否成立,else分支都会执行 n = 0 while n <= 5: print(n) n += 1 else: print("else语句被执行了") n = 0 while n > 5: print(n) n += 1 else: print("else语句被执行了~~~111") n = 0 while n > 5: print(n) n += 1 print("else语句被执行了~~~222") print("*" * 30) # b.结论:如果while语句中出现了break,且break有机会被执行到,则else分支没有执行的机会 n = 0 while n <= 5: print(n) if n == 2: break n += 1 else: print("23525235") n = 0 while n <= 5: print(n) if n == 8: break n += 1 else: print("23525235")
4.嵌套循环
类似于嵌套if语句
语法:
while 表达式1: while 表达式2: 语句
# 1. # 循环3次,打印0 1 2 a = 0 while a < 3: print(a) a += 1 # 循环5次,打印0 1 2 3 4 b = 0 while b < 5: print(b) b += 1 print("*" * 30) # 2. # a. # 外层循环:3次 a = 0 while a < 3: # 内层循环:5次 b = 0 while b < 5: print(f"{a}={b}") b += 1 a += 1 print("*" * 30) # b a = 0 b = 0 while a < 3: while b < 5: print(f"{a}={b}") b += 1 a += 1 # 3.打印九九乘法表 """ 行 列 1x1=1 1 1 1x2=2 2x2=4 2 2 1x3=3 2x3=6 3x3=9 3 3 .... 1x9=9 2x9=18 3x9=37..... 8x9=72 9x9=81 9 9 规律: a.使用嵌套循环 b.外层循环控制行,取值范围:1~9 c.内层循环控制列,取值范围:1~当前行数 d.循环体:列 * 行 = 乘积 """ # 外层循环:控制行 row = 1 while row <= 9: # 内层循环:控制列 col = 1 while col <= row: # 循环体 print(f"{col}*{row}={col * row}",end=" ") col += 1 row += 1 # 换行 print()