当前位置: 首页 > web >正文

流程控制-循环

概述

循环结构属于流程控制的一种,在满足某些条件的情况下,重复的做一些事情。

  • while 循环,适用于循环次数不固定的情况
  • for 循环,适用于循环次数固定的情况

循环的要素

  1. 初始化条件,表示循环从哪里开始执行
  2. 判断条件,表示循环什么时候终止,只要判断条件满足,循环就一直进行
  3. 循环体, 表示判断条件成立的情况下,重复做的事情
  4. 控制条件,表示控制初始化条件变化的

while循环详解

  • 代码格式
初始化条件1
while 判断条件2:循环体3控制条件4

执行流程
第1次循环 1,2,3,4 假设判断条件成立
重复循环 2,3,4 假设判断条件成立
最后1次循环 2 判断条件不成立,循环结束

例1:打印输出5次 Hello World

i = 1									# 初始化条件
while i <= 5:							# 判断条件# 判断条件成立,执行循环体print(f"Hello World! {i}")			# 循环体# 循环执行1次,i就+1i += 1								# 控制条件,控制变量(初始化条件) 变化

例2: 循环求和,1 ~ 100 之间数字和

i = 1
sum = 0
while i <= 100:sum += ii += 1
print(f'数字和值为 {sum}')

例3: 循环求和,1 ~ 100之间的偶数和

i = 1
sum = 0
while i <= 100 :if i % 2 == 0:sum += ii += 1
print(f'偶数和值为 {sum}')

例4: 循环求和,1 ~ 100 之间的奇数和

i = 1
sum = 0
while i <= 100 :if i % 2 != 0:sum += ii += 1
print(f'偶数和值为 {sum}')

while循环经典案例

统计水仙花数

需求:打印所有的水仙花数,统计水仙花数的个数

什么是水仙花数

  1. 它是1个三位数
  2. 它的各个位数的立方和相加等于它本身
  3. 例如 153 = 1 3 + 5 3 + 3 3 153 = 1^3 + 5^3 + 3^3 153=13+53+33
# 1. 定义初始化值,从 100 开始
i = 100
count = 0 # 统计个数初始值
# 2. while循环,获取从100 ~ 1000之间所有的值,左闭右开区间
while i< 1000:# 3. 获取各个位数的数字unit = i // 1 % 10				# 个位数tens = i // 10 % 10			# 十位数hund = i // 100 % 10		# 百位数# 4. 判断是否为水仙花数if unit * unit * unit + tens * tens * tens + hund * hund * hund == iprint(i) # 打印水仙花数count += 1 # 统计个数# 5. 控制条件 i += 1i += 1 
print(f'水仙花个数: {count}')

打印矩形

需求:打印5行5列的矩形,要求一次打印1个 *

i = 1
while i <= 5:j = 1while j <= 5:print('*', end='')j += 1print() # 打印一行之后换行i += 1

打印正三角形

i = 1
while i <= 5:j = 1while j <= i:print('*', end='')j += 1print() # 打印一行之后换行i += 1

打印倒三角形

i = 1
while i <= 5:j = iwhile j <= 5:print('*', end='')j += 1print() # 打印一行之后换行i += 1

打印99乘法表

思路:
99乘法表是一个正三角形
先打印出1个9行9列的矩形
然后将其改造为9行的正三角形
用 i 和 j 两个变量 替换其中的 * 符号

i = 1
while i <= 9:j = 1while j <= i:print(f'{j}*{i}={i*j}',end='\t')j += 1print()i += 1

for 循环

  • 代码格式
for 临时变量 in 列表或者字符串等:循环满足条件时执行的代码

for循环与while循环的区别

  • while循环可以完成的功能for循环基本都可以实现,for循环可以完成的功能while循环基本也可以实现
  • for循环往往用在遍历 字符串、列表等
  • while循环往往用在重复多次运行上

例1:for循环遍历字符串

str = 'helloworld'
for i in str:print(i)

例2:for循环,打印1~5之间的数字

range(起始值,结束值,步长) 生成指定范围内的数字,默认起始值为 0

for i in range(1,5):print(i)

例3: for循环,统计 1 ~ 100 之间的奇数和

sum = 0
for i in range(1,101):if i % 2 != 0:sum += i
print(sum)

例4:使用for循环打印99乘法表

for i in range(1,10):for j in range(1,i+1):print(f'{j}*{i}={i*j}',end='\t')print()
http://www.xdnf.cn/news/7745.html

相关文章:

  • Robot Studio开发入门指南
  • 频分复用信号在信道中的状态
  • 第11天-Python GUI开发实战:Tkinter从入门到项目实践
  • 鸿蒙开发进阶:深入解析ArkTS语言特性与高性能编程实践
  • 【设计模式】基于 Java 语言实现工厂模式
  • 第二届帕鲁杯时间折叠(TimeFold Paradox)
  • 绝缘栅双极型晶体管IGBT的结构与特点
  • 【Git】常用命令大全
  • Git的windows开发与linux开发配置
  • Dify快速上手 MCP,接入高德地图 Server 实战攻略
  • 香港科技大学物理学理学(科学计算与先进材料物理与技术)硕士招生宣讲会——深圳大学
  • 制作一款打飞机游戏52:子弹模式
  • C++显式声明explicit
  • 1G(第一代移动通信系统)详解
  • python 提交 命令到远程windows服务器并获取作业进程id
  • ABAP - SAP与企业微信集成-推送文件到企业微信
  • DeepSeek提示工程Prompt Engineering
  • multipart/* 响应是否必须使用 chunked 编码?
  • 常用UI自动化测试框架
  • 【Python训练营打卡】day31 @浙大疏锦行
  • 本征半导体与杂质半导体
  • Ubuntu操作系统里面安装Docker Compose
  • Python实战:打造一个功能完整的单位转换器(长度/温度/货币)
  • C++开发基础之理解std::condition_variable中的wait与wait_for的区别与使用场景
  • 基于springboot的个人博客系统【附源码】
  • 《苍穹外卖》SpringBoot后端开发项目核心知识点与技术栈整理(DAY10 to DAY12)
  • 【深度学习:理论篇】--一文理解Transformer
  • 若依项目集成sentinel、seata和shardingSphere
  • Day.js 基础用法全方位详解
  • 鸿蒙NEXT开发动画案例12