一 循环语句
1 概念
在生活中,循环指的是一个现象周期性或者重复性的出现
在编程中,在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环,这段被重复执行的代码被称为循环体.
Python中提供的循环语句有:while语句和for语句
2 for 循环
2.1 语法
for 变量名 in 容器:
循环体
功能:for循环主要用于遍历任何容器,比如列表,字符串,元组,字典和集合等
遍历:指的是依次访问序列中的每一个元素,获取每个元素值
说明:按照顺序获取容器中的每个数据,赋值给变量名,再执行循环体,如此循环往复,直到取完容器中所有的数据为止
"""
注意:
1.for循环主要用于遍历任何容器,比如列表,字符串,元组,字典和集合等
2.按照顺序获取序列中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完序列中所有的元素为止
3.for循环的执行次数由:容器中数据的个数 或者 容器的长度
"""
"""
注意:
1.for循环主要用于遍历任何容器,比如列表,字符串,元组,字典和集合等
2.按照顺序获取容器中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完容器中所有的元素为止
3.for循环的执行次数由:容器中数据的个数 或者 容器的长度 决定
4.len(x)可以求容器的长度,用于列表,字符串,元组,字典和集合
"""
# 1.基本语法
# a.字符串
for ch in 'nicegood':
print(ch)
# b.列表
for num in [34,6,7,8]:
print(num + 5)
# c.元组
for num in (34,6,7,8):
print(num + 5)
# 2.需求:打印100遍hello world
for _ in '0987654321':
print('hello world')
for _ in [45,7,89,9,0,45,10,5,7,8]:
print('hello world~~~~~~')
# 注意:如果for循环中定义的变量在循环体中未被使用,则此变量可以直接使用_代替
# 说明:如果已知容器,则可以直接遍历,但是,如果需要用for循环控制次数,一般使用range()
# 3.for+range()
# 需求:打印100遍hello world
for n1 in range(100):
print('hello world') # 0~99
for n1 in range(1,100):
print(n1) # 1~99
for n1 in range(1,100,2):
print(n1) # 1~99之间的所有奇数
for n1 in range(0,100,2):
print(n1) # 0~99之间的所有偶数
"""
常用使用场景:
如果需求中不确定循环的次数,则常用while的死循环结合break使用
如果确定循环的次数,则常用for循环
"""
3 while 循环
3.1 语法
while 条件:
循环体
说明:当程序在从上往下执行的过程中,遇到while语句时,首先判断条件的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句;执行完语句,再去计算表达式的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句。。。如此循环往复,直到表达式的值为假,整个循环才停止
"""
总结:
a.while中的条件和if中的条件的使用完全相同,都可以是常量,变量或表达式
b.在条件成立的前提下,if中的语句只会执行一次,但是,while中的语句【循环体】会执行若干次
c.在大多数情况下,书写循环需要考虑的核心问题:控制循环的次数
让循环可以在合适的时机停止下来,否则形成死循环
"""
"""
总结:
a.while中的条件和if中的条件的使用完全相同,都可以是常量,变量或表达式
b.在条件成立的前提下,if中的语句只会执行一次,但是,while中的语句【循环体】会执行若干次
c.在大多数情况下,书写循环需要考虑的核心问题:控制循环的次数
让循环可以在合适的时机停止下来,否则形成死循环
"""
# 1.while语句和if语句的区别
"""
while 条件:
循环体
if 条件:
语句
"""
# 2.while循环的基本语法
# a.需求:打印10遍hello world
n = 0 # 初始表达式,如果没有指明区间,则初始值习惯设置为0,方便计算
while n < 10: # 等价于n <= 9,条件表达式
print('hello world~~~~~',n) # 循环体
n += 1 # 循环之后的操作表达式
# b.
m = 9
while m >= 0:
print('hello world~~~~~')
m -= 1
# c.死循环
# 常用使用场景:如果需求中不确定循环的次数,则常用while的死循环结合break使用
"""
while 真:
循环体
注意:此处表示真的条件可以是任意数据类型的非空数据,但是常用True
"""
# 常用
while True:
print('11111')
4 嵌套循环
4.1 语法
while 表达式1:
while 表达式2:
语句
for 变量1 in 容器1:
for 变量2 in 容器2:
语句
"""
注意:
a.在代码执行的过程中,一旦遇到循环语句,都要把循环语句执行完毕之后才能继续执行后面的代码
b.在嵌套循环中,如果外层循环进入,内层循环需要全部执行完毕,才能去执行外层循环的下一次循环
"""
# 应用:打印九九乘法表
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
1*9=9 2*9=18 3*9=27 ...... 7*9=63 8*9=72 9*9=81
规律:
a.行数的取值范围:1~9
b.列数的取值范围:1~当前行数
c.表达式的格式:列*行=乘积
"""
# 外层循环:控制行
# while循环实现
row = 1
while row < 10:
# 内层循环:控制列
col = 1
while col <= row:
print(f"{col}*{row}={row * col}",end=' ')
col += 1
row += 1
# 换行
print()
# for循环实现
for row in range(1,10):
for col in range(1,row + 1):
print(f"{col}*{row}={row * col}", end=' ')
print()
5 break和continue
5.1 区别
break:打断,表示结束当前循环【break书写在哪个循环中,就结束哪个循环,就近原则】
continue:继续,表示结束当前循环的本次循环,继续下一次循环
"""
总结:
a.break是一个关键字,但是可以单独作为一条语句使用
b.如果break使用在单层循环【while和for】中,在满足条件的情况下,表示结束循环
c.break应用在嵌套循环中,结束的是当前循环【break书写在哪个循环中,就结束哪个循环】
注意:break和continue都只对循环起作用
"""
# break
n = 0
while n < 10:
if n == 3:
break
print(n) # 0 1 2
n += 1
# continue
n = 0
while n < 10:
if n == 3:
n += 1
continue # 0 1 2 4 5 6 7 8 9
print(n)
n += 1
猜数字游戏
"""
从控制台输入一个数,和程序产生的随机数进行比较,范围1~100
根据比较结果
输入的数 > 随机数,提示:你猜大了,往小了猜
输入的数 < 随机数,提示:你猜小了,往大了猜
输入的数 == 随机数,提示:恭喜你,猜对了
如果猜中,则表示游戏结束,意味着循环结束
"""
import random
random_num = random.randint(1,100)
print(random_num)
guess_num = 0
while True:
guess_num += 1
input_num = int(input("请输入一个1~100之间的数:"))
if input_num > random_num:
print("你猜大了,往小了猜")
elif input_num < random_num:
print("你猜小了,往大了猜")
else:
print("恭喜你,猜对了")
break
print(f"你总共猜了{guess_num}次")