④初识python--python的while与for循环结构
python的循环结构
一、while循环
1、循环简介
循环:有条件地重复做同一件事,直到条件不满足==。
循环的作用:让·代码高效的重复执行
2、while循环三步走
① 定义一个计数器 如: i = 0 , i = 1
② 编写循环条件 如:while i < 100:
③ 在循环内部更新计数器 如 : i +=1
i = 0
while i < 100:
print("麻衣学姐")
i += 1
3、案例(实现1-100累加)
i = 1
sum1 = 0
while i <= 100:
sum1 += i
i += 1
print("1-100累加的结果为:%d" %sum1)
二、循环中的两大关键词
1、break与continue是循环中满足一定条件退出循环的两种不同方式
break:一旦在循环中执行了break关键字,则强制终止整个循环结构(终止循环)
continue:一旦在循环中执行了continue关键词,则会终止本次正在执行的循环,进入下一次的循环结构(退出当前循环继而执行下一次循环)
2、代码分析
break 关键词
i = 1
while i <= 5:
if i == 4:
print("已经吃饱了,不吃了")
break
print("正在吃第{}个苹果".format(i))
i += 1
continue 关键词
i = 1
while i <= 5:
if i == 4:
print("这个苹果有虫,不吃了,吃下一个")
i += 1 # 这个很重要,因为程序不会执行continue关键词后面的语句,不会更新计数器 i的值,会进入死循环!
continue
print("正在吃第{}个苹果".format(i))
i += 1
三、死循环
1、死循环的概念
在编程中一个靠自身控制无法终止的程序称为 ”死循环“
① 在while三步走中没有更新计算器的值 ,会造成死循环
② 在while循环中,在使用continue关键词之前没有更新计算器,也会造成死循环
while True:
print("你是风儿,我是沙~")
2、死循环的意义
与input()方法 (input方法具有暂停程序执行功能)结合,是系统一直执行下去,又可以与用户进行交互。
while True:
print("欢迎使用学生管理系统")
print("[1]添加学生信息")
print("[2]删除学生信息")
print("[3]修改学生信息")
print("[4]查询学生信息")
# 添加一个input()输入语句,给程序添加一个 ”暂停“功能
user_num = int(input("请输入您要执行的功能编号:"))
四、while循环案例
1、猜数字
需求:计算机从1-10随机输出数字,用户有三次输入数字判断机会,当猜测成功退出
import random
computer = random.randint(1, 10)
i = 1
while i <= 3:
# input具有暂停程序的功能,放在while循环语句里面每次都重新输入数字进行判断
num = int(input("请输入您猜测的数字(1-10):"))
if num > computer:
print("您猜大了!")
elif num == computer:
print("恭喜您猜对了!")
break # break关键词 当猜测成功则不需要重新猜测,可以退出当前循环
else:
print("您猜小了!")
i += 1
五、for循环
1、while循环与for循环对比
① 对于循环次数已知的情况,适合使用while循环(因为while循环有遍历次数)
② 对于循环次数未知的情况,如数据容器(字符串、列表、元组、字典、集合统称为数据容器)推荐使用for循环,其实for循环是专门用于实现对数据容器的遍历
2、for循环的语法
for 临时变量 in 数据容器:
print(临时变量)
str1 = 'hello world'
for i in str1:
print(i)
3、range()方法
range()用来生成指定长度的容器,如[1, 2, 3]
range(start , stop, step)
start : 代表起始值,从哪里开始生成(默认值为0)
stop : 代表结束值,但不包括结束值(包头不包尾)
step : 代表步长,每次前进多少个元素(默认值为1)
for i in range(5): # range(0, 5, 1)
print(i)
sum1 = 0
for i in range(1,101):
sum1 += i
print("1到100的和为:%d" % sum1)
range()函数的反向输出:
range(8, 0, -1) => 8 7 6 5 4 3 2 1
还有reversed(range())实现反向输出
4、for循环进行用户名与密码登陆认证**
'''
默认username = ’admin' password = ‘admin888‘
只有三次登陆机会,超过三次登陆则登陆失败
登陆失败则提示用户名错误或密码错误,以及剩余的登陆机会次数
'''
trycount = 0
for i in range(3):
username = input('请输入您的用户名:')
password = input('请输入您的登陆密码:')
trycount += 1
if username == 'admin':
if password == 'admin888':
print('恭喜您登陆成功!')
break
else:
print('您的密码错误,请重新登陆!')
print(f'您还剩余{3 - trycount}次的登陆机会!')
else:
print('您的用户名错误,请重新登陆!')
print(f'您还剩余{3 - trycount}次的登陆机会!')
5、for循环中的else结构
for结构可以和else结合使用,else下方缩进的代码强调的是当循环正常结束之后要执行的代码。
强调的是正常结束,非正常结束不会执行else下方缩进的代码。(比如遇到break的情况)
基本语法:
for 临时变量 in 序列:
循环体
else:
当for循环正常结束之后,返回的代码
# 在整个循环过程中只要不是执行break关键词,循环都代表正常结束,都可以执行else语句中的代码1次
for...else...结构的应用场景:在有限次数内没有登陆成功,输出登陆次数已用完,请稍后登陆!
trycount = 0
for i in range(3):
username = input('请输入您的用户名:')
password = input('请输入您的登陆密码:')
trycount += 1
if username == 'admin':
if password == 'admin888':
print('恭喜您登陆成功!')
break
else:
print('您的密码错误,请重新登陆!')
print(f'您还剩余{3 - trycount}次的登陆机会!')
else:
print('您的用户名错误,请重新登陆!')
print(f'您还剩余{3 - trycount}次的登陆机会!')
else:
print('很抱歉,您的三次登陆机会已用完,请十分钟之后再次登陆!')
6、报数字游戏(数7游戏)
'''
报数字也称数7数字
从1开始报数,遇到以7为尾数或7的倍数即跳过,最后统计报数的人数
需求分析:
① 提示用户输入参与游戏的人数
② 如何判断为7的倍数或尾数为7
i % 7 == 0 7的倍数
i % 10 == 7 尾数为7
③ 遇到7的倍数使用continue跳过
④ 设计一个变量来统计最后报数的人数
'''
num1 = int(input('请输入参与游戏的人数:'))
count = 0
for i in range(1, num1 + 1):
if i % 7 == 0 or i % 10 == 7:
continue
count += 1
print(f'参与游戏的人数为{num1},最后参与报数的人数为:{count}')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!