一、前言
1.1、什么是循环?
在我们日常生活中,比如学生每天的上课,总是:起床---吃早餐---上课---吃午饭---午休---上课---吃晚饭---晚自习---睡觉,每天都是重复着这一个过程。像这种有条件地重复地做⼀件事,每⼀次做的事情不同但类似的事情我们就可以用循环。程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环。
1.2、循环的作用
循环的作用就是要代码高效的重复执行。比如我们遇到要重复输出一百遍一样的print语句的时候,假如我们没有循环,那么我们就需要复制粘贴一百份相同的代码,其实不⽤这么麻烦,以上输出代码中有很多重复的地⽅,我们只要重复执⾏100次相同的代码即 可,这就是循环!
1.3、循环的种类
在Python中,循环一共分为两类,一类是是while循环,另一类是for循环。那么我们该如何选择循环的类型:
1.4、循环的注意事项
在大家之前学过的C语言或者Java中,我们的循环条件一般都是通过小括号括起来的,而循环体都是通过大括号包起来的。但是Python里面没有这些繁琐的格式,我们的循环条件不需要小括号,直接写就可以了,而我们的循环体是有严格的缩进原则的,是通过缩进来判断循环体的范围的。
二、while循环
2.1、while循环的基本语法
# ① 定义⼀个计数器(初始化⼀个计数器)
i = 0或1
# ② 编写while循环结构
while 循环条件(判断 计数器 是否达到了⽬标位置):
循环体1
循环体2
...
# ③ 在循环内部更新计数器
i = i + 1 或 i += 1
while循环四步走:
1、定义计数器
2、编写循环条件
3、编写循环体
4、更新计数器
2.2、while循环的案例
1、使用while循环求0-100之和
# 1-100的累计求和
i = 1
result = 0
while i <= 100:
result += i
print(i)
i += 1
print(f"1-100的累加结果是:{result}")
2、1-100之间的偶数的累计求和
# 1-100的偶数累计求和
i = 1
result = 0
while i <= 100:
if i % 2 == 0:
result = result + i
i = i + 1
print(f"1-100的偶数和为:{result}")
3、从键盘输入数字,求这个数字的阶乘和阶乘的表达式
number = int(input("请输入一个要求阶乘的数字:"))
start = 1
result = 1
# 存储最后的结果
str_result = ""
while start <= number:
# 阶乘的计算结果
result = result * start
# 阶乘的计算表达式
if start == 1:
str_result = str(start)
else:
str_result = str_result + f"x{start}"
start += 1
print(f"{str_result} = {result}")
4、猜数字大小的综合案例
电脑随机生成一个0-10的数字,用户手工从键盘输入一个数字,总共有三次机会。
# 第⼀步:定义⼀个计数器
i = 0
# 第四步:⽣成1 ~ 10之间的随机数
secretNum = random.randint(1, 10)
# 第⼆步:编写循环条件
while i < 3:
# 第五步:提示⽤户输⼊⼀个数字
userNum = int(input('请输⼊您猜的数字(范围1~10之间):'))
# 第六步:判断⽤户输⼊的数字是否与随机数相等
if secretNum == userNum:
print('恭喜你,才对了')
break
elif secretNum < userNum:
print('猜⼤了')
elif secretNum > userNum:
print('猜⼩了')
# 第三步:更新计数器
i += 1
三、循环的两大关键词:continue和break
3.1、break关键词
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
# 当变量i == 4的时候,终⽌循环
if i == 4:
print('我已经吃饱了,实在吃不下了...')
break
# 正在吃第⼏个苹果
print(f'正在吃第{i}个苹果')
# 更新计数器
i += 1
3.2、continue关键词
计算1-10的奇数之和:
num = 1
sum_odd = 0
while num <= 10:
if num % 2 == 0:
num += 1
continue
sum_odd += num
num += 1
print("1到10之间奇数的和为:", sum_odd)
四、for循环
for循环结构主要⽤于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作。 另外当循环次数未知的情况,建议使⽤for循环。
4.1、语法
for 临时变量 in 序列:
重复执⾏的代码1
重复执⾏的代码2
4.2、案例
# 使⽤for循环遍历字符串"python"
char = "Python"
for i in char:
print(i,end=",")
4.3、range()方法(函数)
range(stop)
range(start, stop, step)
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5
step:步⻓,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)
4.4、range()结合for循环案例
#案例:for循环与range⽅法,使⽤for循环,循环5次
for i in range(5):
print(i)
# 使⽤for循环,求1 ~ 100的和
result = 0
for i in range(1,101,1):
result += i
print(result)
# 使⽤for循环,求1 ~ 100的偶数和
result = 0
for i in range(0,101,2):
result += i
print(result)
# 或者
result = 0
for i in range(1,101):
if i % 2 == 0:
result += i
print(result)
# 案例:⽤for循环实现⽤户登录
# ① 输⼊⽤户名和密码
# ② 判断⽤户名和密码是否正确(username='admin',password='admin888')
# ③ 登录仅有三次机会,超过3次会报错
zhanghao = "abcabc"
mima = "abcabc123123"
for i in range(1,4):
username = input("请输入你的用户名:")
password = input("请输入你的密码:")
if zhanghao == username and mima == password:
print("登录成功!")
break
else:
print(f"你还有{3-i}次机会!")