Python基础知识之循环及其镶嵌结构
一. 概述
对于上百上千次的重复方式运算,我们可以运用循环及其镶嵌结构去简单的解决这个问题,该循环结构包括while循环以及for-in循环,其中的道理也是理解也是比较简单一点的,大家肯定能学懂。🥰
二. while循环
while 四步
1 初始化变量 👊
2 条件判断 👊
3 条件执行体(循环体)👊
4 改变变量👊
初始化变量与条件判断的变量与改变的变量为同一个
以下用代码举例,来理解其中的道理:
① 计算1 2 3 4 之和
sum=0 #用于存储累加之和
i=0
while i<5:
sum+=i
i+=1
print(sum)
输出结果为:
10
解释:🤔sum用来储存和
定义i=0,进行while循环,当i<5不成立时,跳出循环
在执行体中,每次循环sun= sum+i 同时让 i=i+1,i若不改变则进入死循环
最后输出sum
② 计算1~100直接的偶数和
a=1
sum=0
while a<101:
if a%2==0:
sum+=a
a+=1
print('输出1~100的偶数和',sum)
输出结果为:
输出1~100的偶数和 2550
解释:🤔循环和上面例题差不多,只不过这里镶嵌了一个if条件语句,来判断该数是否为偶数(if a%2=0),若为偶数就sum= sum+a,否则就不进行sum的操作
a=a+1在不在if语句之内,所以不管是否为偶数a都要+1🤗
其代码也可以写成这样: if bool(a%2):
a=1
sum=0
while a<101:
if bool(a%2):
sum+=a
a+=1
print('输出1~100的偶数和',sum)
解释:
利用bool运算,0的布尔值为False👍
三. for-in循环
for -in 循环 in是从表达中依次取值 又名为 遍历 该对象必须为迭代对象
举例:
for item in 'Python':
print(item)
输出结果为:
P
y
t
h
o
n
range() 所产生的序列也是迭代对象
for i in range(10):
print(i)
输出结果为:
0
1
2
3
4
5
6
7
8
9
若不想定义一个变量,可以用 _ 代替:
for _ in range(2):
print('for-in循环')
输出结果为:
for-in循环
for-in循环连续输出两次🤛
① 用for -in 计算1~100的偶数和
代码如下:
sum=0
for i in range(1,101):
if i%2==0:
sum+=i
print(sum)
输出结果:
2550
若想用for-in循环跳跃式取值则可以利用以下知识:
for i in range(5,2,-1):
print(i,end=' ')
输出结果为:
5 4 3
解释:😜
从5开始 到 2 结束不包括2 步长为 -1
for-in循环解决水仙花数问题
问题描述:
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
1、水仙花数是一个三位数:111 333 456 999 530🤪
2、水仙花数的个位、十位、百位的数字立方和等于原数🤪
3举例:153=333+555+111
思路:
基本思路就是利用for-in循环遍历其中的数,再利用if语句进行判断其数是否符合条件
由题可知,该数为三位数,范围在100~999之间,并把三个数分别运算出
个位:用该数%10 保留个位
十位:用该数//10 求出百位与十位,在%10得到十位
百位:用该数//100 保留百位
代码如下:
for shu in range(100,1000):
ge=shu%10
shi=shu//10%10
bai=shu//100
if ge**3+shi**3+bai**3==shu:
print(shu)
验证其代码:
153
370
371
407
若你的pycharm是这样的:
哎呀,还是好好检查检查吧😃
四.break语句 非正常跳出循环
举例
①输入密码 错误三次跳出即锁定
for-in 循环
for item in range(3):
pwd=input('请输入密码')
if pwd=='7788':
print('密码正确')
break
else:
print('密码错误')
请输入密码2
密码错误
请输入密码3
密码错误
请输入密码7788
密码正确
用while循环:
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='778899':
print('密码正确')
break
else:
print('密码错误')
a+=1
五.continue 语句 结束当前循环,进行下一循环
题目要求:
要求输出 1~50之间 5的倍数
for item in range(1,51):
if item%5==0:
print(item)
要是用continue语句呢?🤔
for item in range(1,51):
if item%5!=0:
continue
print(item)
其中continue 相当于把所有符合条件的数值都输出
六.else语句
else 语句 在循环中若没有遇到break 就执行else语句
题目:
还是输入密码
for-in循环
for item in range(3):
pwd=input('请输入密码')
if pwd=='123456':
print('密码正确')
break
else:
print('密码错误')
else:
print('三次密码均错误,即锁屏')
while循环
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='456':
print('密码正确')
break
else:
print('密码错误')
a+=1
else:
print('三次密码均错误,即锁屏')
七.镶嵌结构
以下用题目来掌握其知识点
① 输出一个三行四列的矩形 用 ※ 代替
for i in range(1,4): #行表 执行三次 一次一行 i
for j in range(1,5): # 列表 j
print('※',end='\t') # 不换行输出
print() #打行
输出结果为:
※ ※ ※ ※
※ ※ ※ ※
※ ※ ※ ※
② 输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
输出结果为:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
额…😧这个可以自己在pycharm打印出来,这里展示的好别扭,见谅哈
新手小白,有何不妥,请您提出,还需努力!!!
👍+✏️+⭐️ 是对博主最大的鼓励与支持!!!