python基础教程: while 循环语句用法

news2024/11/23 13:08:31

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

话不多说,直接开搞,如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码

一.while 循环结构

特征:

减少代码冗余,提升代码效率

语法:

while 条件表达式:
	code1
	code2
	...

1.初始化一个变量

2.写上循环的条件表达式

3.自增自减的变量值

案例1:打印1~100

i = 1
while i<=100:
	# 要执行的逻辑 ... 
	print(i)
	i += 1

"""
初始化一个变量 i

第一次循环:
i <= 100 条件成立,执行循环
直接打印 print(i) => 1
i += 1 => i = 2

第二次循环:	
回到17行,重新回到判断,看一看是否满足条件
2 <= 100 条件成立,执行循环
直接打印 print(i) => 2
i += 1 => i = 3

第三次循环:
回到17行,重新回到判断,看一看是否满足条件
3 <= 100 条件成立,执行循环
直接打印 print(i) => 3
i += 1 => i = 4

...
...
依次类推进行循环 ... 

到什么时候结束?
当打印100 结束之后 
i += 1 => i = 101 回到循环的判断条件中
发现101 <= 100 不满足条件,不成立,不执行循环体代码块
到此为止,循环直接结束.

"""

案例2 : 打印1~100的累加和?1+2+3+4+ …+100 ?

方法一

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''
total 负责做累加和
total = 0
i = 1
while i<=100:
	total += i
	i+=1

print(total)

代码解析:

"""
第一次循环:
1 <= 100 条件为真 , 执行循环
total += i => total = total + i => total = 0 + 1
i+=1 => i=2


第二次循环:
回到条件表达式中进行判断 
2<=100  条件为真 , 执行循环
total += i => total = total + i => total = 0 + 1 + 2
i+=1 => i=3

第三次循环:
回到条件表达式中进行判断 
3<=100  条件为真 , 执行循环
total += i => total = total + i => total = 0 + 1 + 2 + 3
i+=1 => i=4

...
...
依次循环


什么时候结束?
total = 0 + 1 + 2 + 3 + ... + 100
i+=1 => i = 101
回到条件表达式中进行判断 
101 <= 100 条件不成立,不执行循环体;
直接终止循环;

print(total)  5050
"""
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599 
'''

方法二

# 1+2+3+4+ .....+100 ? 用while True 的方式实现;
total = 0 
i = 1
sign = True
while sign:
	total += i
	i+=1
	
	# 手动加上终止的条件
	if i == 101:
		sign = False

print(total)
# 这种情况下就不执行循环了;用这样的方式终止循环;
while False:
	print(111)

二.死循环

while True:
	print(123)

(1.单循环练习:

1.打印一行十个小星星

i = 1
while i <= 10:
	print("★",end="")
	i += 1

2.用一个变量打印出一行十个小星星

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''

i = 0
strvar = ""
while i<10:
	# 循环10次,拼接10个星星,每循环一次拼接一个星星
	strvar += "★"
	i+=1
print(strvar)

3.打印一行十个小星星 奇数个打印★ 偶数个打印☆

方法一

i = 1
while i <= 10:
	if i % 2 == 0:
		print("☆",end='')
	else:
		print("★",end="")
	i += 1

方法二

print("-----分割线-------")
count = 1
str_var = ""
while count <= 10:
	if count % 2 == 0:
		str_var += "☆"
	else:
		str_var += "★"
	count += 1
print(str_var)

4.一个循环,打印十行十列小星星

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''
#循环100和星星
i = 1
while i <= 100:
	#1.打印小星星
	print("★",end='')
	#2.打印换行
	if i % 10 == 0:
		print()
	i += 1

5.一个循环 打印十行十列隔列变色小星星

方法一

i = 0
while i < 100:
	if i % 2 == 0:
		print("☆",end="")
	else:
		print("★",end='')
	if i % 10 == 9:
		print()
	i += 1

方法二
_str_var = “”

count = 1
while count <= 100:
	if count % 2 == 0:
		_str_var += "☆"
	else:
		_str_var += "★"
	if count % 10 == 0:
		_str_var +="\n"
	count += 1
print(_str_var)

6.一个循环 打印十行十列隔行变色小星星

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''

i = 0
while i < 100:
	#打印星星
	if i // 10 %2 == 0:
		print("☆", end="")
	else:
		print("★",end="")
	if i % 10 == 9:
		print()
	i += 1

(2.pass break continue

1.pass 过 (当不能直接在代码块中写上具体代码时,先用pass占位;)

num = 10
if num == 10:
	pass


i = 0
while i<10:
	pass
	i+=1

2.break 终止当前循环,只能用在循环当中

# 打印1~10 ,遇到5就终止循环
# 单循环 (终止当前循环)
i = 1
while i<=10:
	
	if i == 5:
		break
		
	print(i)
	
	i+=1

多循环 (终止当前循环)

i = 0 
while i<3:
	j = 0
	while j<3:
		if j ==2:
			break
		print(i,j)
		j+=1
	i+=1
# 不能再循环外使用break
"""
if 5==5:
	print(111)
	break
"""

3.continue 跳过当前循环,从下一次开始 ,只能用在循环当中

打印1 ~ 10 不包括5

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''
i = 1
while i<=10:
	
	if i == 5:
		# 手动加1 , 防止跳过下面代码,忽略自增形成死循环;
		i+=1
		continue
	print(i)
	i+=1

打印1~100 所有不含有4的数字;

"""
// 地板除可以取一个数的高位
%  取余  可以取一个数的低位

任意数 // n 会产生n个相同的数字
任意数 %  n 取值范围是0~(n-1)
"""

方法一

i = 1
while i<=100:
	
	if i % 10 == 4 or i // 10 == 4:
		# 手动自增1,防止死循环
		i+=1
		continue
	print(i)
	i+=1
	

方法二 in

i = 1
while i<=100:
	strvar = str(i)
	if '4' in strvar:
		i+=1
		continue
		
	print(i)
	i+=1

(3.双层循环练习

1.十行十列小星星

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''

#j动1次,i动10次,外层循环动的慢.内层循环动的快
j = 0
while j<10:
	#打印星星
	i = 0
	while i < 10:
		print("*",end='')
		i += 1
	# 打印换行
	print()

	j += 1

2 双层 十行十列隔列换色小星星

j = 0
while j<10:
	#打印一行十个星星
	i = 0
	while i < 10:
		if i % 2 == 0:
			print("☆",end='')
		else:
			print("★",end='')
		i += 1
	#打印一个换行
	print()
	j += 1

3双层 十行十列隔行换色小星星

"""
当j = 0 时,在内存循环,循环了10次 ☆
当j = 1 时,在内层循环,循环了10次 ★
"""
print("------分割线------")
j = 0
while j < 10:
	#打印一行十个小星星
	i = 0
	while i < 10:
		if j % 2 == 0:
			print("★",end='')
		else:
			print("☆",end='')
		i += 1
	#打印一个换行
	print()
	j += 1

4.打印99乘法表

"""
外层的i控制行 里层的j控制列
当前j跟当前行数有关系,不能大于当前行 所以j <= i
"""

方法一(正序 1~9)

i = 1
while i <= 9:
	j = 1
	while j <= i:
		#字符串的格式化 让最后的乘积占用2位,据右边显示;
		print("%s*%s =%2s"%(i,j,i*j),end=" ")
		j += 1
	print()
	i += 1
"""
'字符串'%(值1,值2,值3,......)
%s 字符串占位符
res = "%s * %s = ?"% (5,6)
print(res)
"""

方法二(倒序 9 ~1)

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:702813599
'''
i = 9
while i >= 1:
	#字符串的格式化 让最后的乘积占用2位,据右边显示;
	j = 1
	while j <= i:
		#字符串的格式化 让最后的乘积占用2位,据右边显示;
		print("%d*%d=%2d"% (i,j,i*j),end=' ')
		j += 1
	#打印换行
	print()
	i -= 1

方法三

i = 1
while i <= 9:
	#(1)先打印空格
	k = 9 - i
	while k > 0:
#	"""打印空格"""
		print("      ",end="")
		k -= 1

	#print("       "*(9-i),end="")
	#(2)打印表达式
	j = 1
	while j <= i:
		print("%d*%d=%2d"% (i,j,i*j),end="")
		j += 1
	#(3)打印换行
	print()
	i +=1

print("-----分割线-----")

方法四

i = 9
while i > 0:
	k = 9 - i
	while k > 0:
		print("         ",end='')
		k -= 1
	# print("       "*(9-i),end='')
	# (2) 打印表达式
	j = 1
	while j <= i:
		#字符串的格式化 让最后的乘积占用2位,据右边显示;
		print("%d*%d = %2d"% (i,j,i*j),end=' ')
		j += 1
	#打印换行
	print()
	i -= 1

5 求吉利数字100 ~ 999 666 888 111 222 333 444 … 123 789 567 987 321 543 210

"""
// 地板除可以获取一个数的高位
% 取余 可以获取一个数的低位

98 98 % 10 => 8
98 98 // 10 => 9

678
个位 = 678 % 10 => 8
十位 = 678 // 10 %10 => 7
百位 = 678 // 100 => 6
"""

方法一

i = 100
while i <= 999:
	gewei = i % 10
	shiwei = i // 10 % 10
	baiwei = i // 100

	#gewei = shiwei = baiwei 三者相同
	if shiwei == gewei and shiwei ==baiwei:
		print(i)

	#678
	if shiwei == gewei -1 and shiwei == baiwei + 1:
		print(i)

	#876
	if shiwei == gewei + 1 and shiwei == baiwei - 1:
		print(i)
	i += 1

方法二 字符串形式写

print("-----分割线-------")
i = 100
while i<= 999:
	num = str(i)
	#"987"
	geiwei = int(num[-1]) #7
	shiwei = int(num[1]) #8
	baiwei = int(num[0]) #9

	if shiwei == gewei and shiwei == baiwei:
		print(i)

	if shiwei == gewei - 1 and shiwei == baiwei + 1:
		print(i)

	if shiwei == gewei + 1 and shiwei == baiwei - 1:
		print(i)

	i += 1

经典题: 百钱买百鸡

公鸡,母鸡,小鸡,公鸡1块钱一只,母鸡3块钱一只,小鸡是5毛钱一只,

问100块钱买100只鸡,有多少种买法

穷举法: 一个一个拿出来试

x [1,2]
y [3,4]
z [5,6]

满足 x+y+z = 10

1 + 3 + 5 = 9
1 + 3 + 6 = 10 ok

1 + 4 + 5 = 10 ok
1 + 4 + 6 = 11 

2 + 3 + 5 = 10 ok
2 + 3 + 6 = 11

2 + 4 + 5 = 11
2 + 4 + 6 = 12

公鸡x只,母鸡y只,小鸡z只

x+y+z = 100 #一百只鸡
x+3+y*1+0.5*z = 100

两个条件同时满足

x = 0
total = 0
while x<=100:
	y = 0
	while y<= 33:
		z = 0
		while z <= 100:
			if(x+y+z == 100) and (x+3*y+0.5*z == 100):
				total += 1
			z += 1
		y += 1
	x += 1
print(total)

尾语

好了,今天的分享就差不多到这里了!

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇 更多源码、资料、素材、解答、交流 皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/988130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高速文件扫描仪:从繁琐到高效的革命性转变

高速文件扫描仪是办公设备中的重要一员&#xff0c;其主要功能是将纸质文件快速转换为数字格式&#xff0c;从而方便存储、传输和管理。那么&#xff0c;这个设备是如何起源并逐步发展起来的呢&#xff1f; 随着信息技术的不断推进&#xff0c;人们对数字化办公的需求变得越来…

Windows 10压缩卷参数错误怎么办?

压缩卷显示参数错误&#xff0c;这种情况很多用户都遇到过&#xff0c;遇到这种情况表示分区表信息与实际信息不符。因此&#xff0c;Windows不允许您对此驱动器进行任何更改&#xff0c;包括缩小卷大小。导致此问题的原因有很多&#xff0c;例如&#xff1a;病毒攻击、文件系统…

【验证码逆向专栏】房某下登录滑块逆向分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未…

《数字图像处理-OpenCV/Python》连载(5)图像的显示

《数字图像处理-OpenCV/Python》连载&#xff08;5&#xff09;图像的显示 本书京东优惠购书链接&#xff1a;https://item.jd.com/14098452.html 本书CSDN独家连载专栏&#xff1a;https://blog.csdn.net/youcans/category_12418787.html 第1章 图像的基本操作 为了方便初学…

Discourse 的系统日志

Discourse 提供了较为完善的日志查看方式。 用得最多的可能就是 Logster 的基于 Web 的 UI 了。 Logster Discourse 的错误日志面板用的是 logster&#xff0c;采集的是 Rails/Rack 的日志&#xff0c;正常应该用 Rails::Logger 但是 discourse 做了封装。 正常的访问地址为…

《程序员职场工具库》必须及格的职场工具 —— PPT 系列1

这是《程序员职场工具库》系列文章&#xff0c;在阅读本文之前&#xff0c;建议先阅读 《程序员职场工具库》 工具导论。 前言 如果做个跟 PPT 相关的调查问卷&#xff0c;估计大部分的程序员都会避之唯恐不及。因为每次谈起 PPT 工具&#xff0c;总会让我们想起很多不太好的回…

Python数据分析实战-依次遍历dataframe每一行,对某字段进行分析处理并新增一列(附源码和实现效果)

实现功能 依次遍历每一行&#xff0c;在某列包含某个元素时新增一列进行标记 实现代码 def province_distribution_of_colleges(self, file):df pd.read_excel(os.path.join(self.datapath, file))df1 dfhua_bei [北京市,天津市,河北省,山西省,内蒙古自治区]dong_bei [辽…

vue: 使用下拉树组件@riophae/vue-treeselect

前言: 在vue中, 因为element-ui 2.X是没有tree-select组件的&#xff0c;到了element-plus就有了 riophae/vue-treeselect是一个基于 Vue.js 的树形选择器组件&#xff0c;可以用于选择树形结构的数据。它支持多选、搜索、异步加载等功能&#xff0c;可以自定义选项的样式和模…

2023如何推广外贸独立站?

答案是&#xff1a;2023外贸独立站推广可以选择谷歌SEO谷歌Ads双向运营。 在2023年&#xff0c;外贸独立站的推广方式已经不再是过去简单的搜索引擎优化或广告推送。 现代的推广手段需要更多地涵盖多样性和针对性&#xff0c;从而确保可持续的客流和利润增长。 本文将深入探…

IP6510 为“快充”而生 支持PD及各种快充协议芯片多口快充解决方案

IP6510深力科是一款集成同步开关的降压转换器、支 持 9 种输出快充协议、支持 Type-C 输出和 USB PD 协议&#xff0c;为车载充电器、快充适配器、智能排插提供 完整的解决方案。 IP6510 内置功率 MOS&#xff0c;输入电压范围是 4.5V 到 32V&#xff0c;输出电压范围是 3V 到…

MySQL表空间

MySQL表空间 文章目录 MySQL表空间1. MySQL中的表1.1 IOT表1.2 InnoDB逻辑存储结构2. 独立表空间2.1 段 segment2.1.1 段的概念2.1.2 段的分类2.1.2.1 叶子节点段主要结构2.1.2.2 非叶子节点段2.1.3 碎片区2.2 区2.2.1 区的概念2.2.2 区的结构2.2.2.1 XDES Entry结构2.3 页2.3.…

【sgLazyCascader】自定义组件:基于el-cascader的懒加载级联菜单,支持异步加载子级菜单

sgLazyCascader源码 <template><div :class"$options.name"><el-cascader :props"props" v-model"model" :placeholder"placeholder || 请选择" :options"options"></el-cascader></div> &l…

欧洲汽车制造商押注电力合成燃料 | 2023中国可持续燃料峰会

欧洲几家汽车制造商表示&#xff0c;所谓的电力合成燃料(e-fuels&#xff0c;利用可再生电力合成的化石燃料&#xff0c;又称电子燃料)将在欧洲汽车行业的未来发挥关键作用&#xff0c;它们相信&#xff0c;布鲁塞尔方面在替代燃料问题上的让步&#xff0c;将使它们能够在未来1…

TiledMap 浅谈

Tiled Map Editer 制作TiledMap的工具很多&#xff0c;这里推荐一个免费的工具。 Tiled Map Editer 官网网站&#xff1a;https://doc.mapeditor.org/ 简单的Tiled Map Editer教程 安装Tiled Map Editer&#xff0c;打开。 点击新建地图 块大小建议为32的倍数 地图方向 …

Commonsense Knowledge Base Completion with Structural and Semantic Context

摘要 与研究较多的传统知识库(如Freebase)相比&#xff0c;常识性知识图(如ATOMIC和ConceptNet)的自动知识库补全提出了独特的挑战。常识知识图使用自由形式的文本来表示节点&#xff0c;与传统知识库相比&#xff0c;导致节点数量增加了几个数量级(与Freebase (FB15K237)相比…

分类预测 | MATLAB实现PCA-GRU(主成分门控循环单元)分类预测

分类预测 | MATLAB实现PCA-GRU(主成分门控循环单元)分类预测 目录 分类预测 | MATLAB实现PCA-GRU(主成分门控循环单元)分类预测预测效果基本介绍程序设计参考资料致谢 预测效果 基本介绍 Matlab实现基于PCA-GRU主成分分析-门控循环单元多输入分类预测&#xff08;完整程序和数据…

DataGridView选中的单元格求和

DataGridView单元格求和功能的基本思路是先得到选中的单元格&#xff0c; 1&#xff0c;在内存中定义两张表&#xff0c;一张存放列名&#xff0c;一张存放列名和数个。这样这两张表就开成了一对多的父子关系。 2&#xff0c;在将两张定及他们的父子关系添加到DataSet对象中 4…

5款无广告的小软件,先收藏再下载

​ 最近后台收到好多小伙伴的私信&#xff0c;今天继续推荐五款小工具&#xff0c;都是免费使用的&#xff0c;大家可以去试试看。 1.写作软件——Effie ​ Effie是一款极简风格的写作软件&#xff0c;它可以帮助您优雅地写作和记录&#xff0c;把思想变成价值。Effie支持多种…

嵌入式学习笔记(19)SDRAM引入

SDRAM的特性&#xff08;容量大、价格低、掉电易失性、随机读写、总线式访问&#xff09; SDRAM/DDR都属于动态内存&#xff08;相对于静态内存SRAM&#xff09;&#xff0c;都需要先运行一段初始化代码来初始化才能使用&#xff0c;不像SRAM开机上电后就可以直接运行。类似于…

2023-大数据应用开发-工业可视化参考结果

工业可视化 任务一&#xff1a;用柱状图展示设备历史各个状态持续时长 编写Vue工程代码&#xff0c;根据接口&#xff0c;用柱状图展示接口所有数据中各设备各个状态持续时长&#xff08;秒&#xff09;&#xff0c;同时将用于图表展示的数据结构在浏览器的console中进行打印…