三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Python学习之路:数据的逻辑处理——循环

Python学习之路:数据的逻辑处理——循环

循环:重复执行某件事情

1. while 循环

  1. while循环是通过条件表达式来控制是否要进入下一次循环。如果条件表达式一直为True那么就会变成无限循环。
  2. while...else中的else内的执行语句只会在循环正常结束后执行。
  3. while循环的条件表达式的结果一定是布尔类型
  1. 语法结构
# 第一种语法结构:while条件表达式: 循环体语句1循环体语句2...# 第二种语法结构:while条件表达式: 循环体语句1循环体语句2...else:条件为False,循环正常结束时执行
  1. 执行流程
  2. 代码示例
# 需求:打印10遍“Python~”i=1whilei<=10:print(f"{i}. Python~")i+=1else:print("循环正常结束, 执行完毕")

2. for 循环

for循环本质是一种轮询遍历机制,对一批内容进行逐个处理。

  1. 语法结构
for元素in待处理的数据集:循环体代码(对元素进行处理)else:# else 可有可无循环结束时,执行的代码
  1. 执行流程
  2. 示例
# 需求:遍历输入字符串msg=input("请输入要遍历的字符串: ")forsinmsg:# s 表示遍历出来的元素; msg 表示需要遍历的数据print("元素:",s)else:# 可写可不写print("循环结束~")

3. while 和 for 区别

while 循环for 循环
语法while 条件表达式: 循环体代码for 变量 in 可迭代对象:循环体代码(对元素进行处理)
控制方式while循环通过控制条件表达式来控制循环的开始与结束for循环通过遍历一个可迭代对象来控制循环的次数和变量的取值。
使用场景用于在某个条件满足时一直循环,循环的次数通常是未知的,只知道循环开始/结束的条件用于对一个已知的数据集进行遍历或已知次数的循环

4. 嵌套循环

  1. 语法结构
for元素in待处理数据集1:循环体的代码1循环体的代码2...for元素in待处理数据集2:循环体的代码1循环体的代码2......
  1. 示例
""" 需求:根据输入的长方形的长度m, 宽度n, 打印一个长方形 如下: 长度为10, 宽度为5的长方形 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * """# 1. 接收键盘录入的m, n# 长度m=int(input("请输入长方形的长: "))# 宽度n=int(input("请输入长方形的宽: "))# print() 语句自带换行效果, print("*", end=" ")end表示每一次输出以什么结束,默认是 \n 表示换行foriinrange(1,n+1):forjinrange(1,m+1):print("*",end=" ")print()

运行结果:

5. 关键字break 和 continue

break:只出现在循环里面,表示结束 、跳出循环。
continue:只出现在循环里面,表示中断本次循环,直接进入下一次循环

代码示例:

""" 需求:根据输入的用户名密码执行登录操作, 具体要求如下: 1. 正确的用户名和密码为admin/666888、zhangsan/123456、taoge/888666 2. 输入用户名和密码进行登录, 直到登录成功, 程序运行结束; 如果登录失败, 则 继续输入用户名和密码进行登录 3. 输入的用户名和密码不能为空 4. 登录成功: 输出"登录成功, 进入B站首页~" 5. 登录失败: 输出"用户名或密码错误, 请重新输入" """whileTrue:# 1. 接收用户输入的用户名和密码account=input("请输入用户名: ")password=input("请输入密码: ")# 2. 判断用户名或者密码是否为空ifaccount==''orpassword=='':print("输入的用户名和密码不能为空")continue# 结束本次循环,直接进入下一次# 3. 判断用户名和密码是否正确if(account=='admin'andpassword=='666888')or(account=='zhangsan'andpassword=='123456'):print("登录成功, 进入B站首页~")break# 结束循环,后面的else不会再被执行elifaccount=='taoge'andpassword=='888666':print("登录成功, 进入B站首页~")breakelse:print("用户名或密码错误, 请重新输入")

运行结果:

  1. 用户名或密码输入错误,结果示意图
  2. 用户名和密码正确,结果示意图
  3. 用户名或密码为空的情况,结果示意图
← 返回列表