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打印出来,这里展示的好别扭,见谅哈

在这里插入图片描述

新手小白,有何不妥,请您提出,还需努力!!!
👍+✏️+⭐️ 是对博主最大的鼓励与支持!!!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汴京城下君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值