Python - 循环结构


本次主要介绍的是程序的循环结构逻辑。
循环就是按照一定的条件重复的去做一件事情,当条件不成立时就结束循环的内容。
在编写代码时如果能够简化一个程序,把重复的代码形成公共部分,利用语法来控制,对代码进行循环往复的执行,这就形成了循环结构逻辑。

🐍While循环

While循环的语法格式如下

while 条件表达式 :
	代码段(包含改变计数器值的语句)

while 关键词后面紧跟的条件表达式决定了循环是够进行下去。

下面用while语句实现求1~100的累加和,代码如下:

count = 1		#计数器
sum0 = 0		#统计和值,初始值为0
while count <= 100 :
    sum0 += count
    count += 1
print(sum0)

运行结果如下:
在这里插入图片描述
While循环的语法要点需要做的就是以下三件事:
1、定义计数器的初始值,这个计数器可以计数,也可以用作求解问题的数字处理。
2、While循环条件保证计数器在一定条件下退出循环。
3、循环做的事情放在循环体里,同是不要忘记计数器的叠加效果。

🐍While…else…循环

While…else…的语法格式如下:

while 条件表达式 :
	代码块1
	改变计数器的值
else :
	代码块2

这个格式比原来基本的while格式读了一个else语句,器质性流程也多了一步流程,即当while循环体正常执行完后执行else代码块中的内容。
下面用while语句实现银行卡吞卡验证,代码如下:

count = 1
password = input("输入密码:")
while count < 3 :
    if password == "000000" :
        print("密码正确,您可以取款了")
        break
    else :
        input("密码错误,请再一次输入密码:")
    count += 1
else: print("密码错误,卡被吞")

运行结果如下:
在这里插入图片描述
break用来推出循环体,不再执行本层循环。

🐍for循环

while循环和for循环用于处理不同的问题,while应用在不知道循环次数的情况下,for应用在确定循环次数的情况下。
for循环语句的格式如下:

for 临时变量 in 可迭代对象 :
	循环体

执行过程就是将每一个可迭代对象中的每一个元素复制给临时变量,再执行循环体。当可迭代对象中的元素全部遍历完后for循环就停止运行。
如用for循环求1~100的累加和,代码如下:

sum0 = 0
for count in range(1,101,1) :
    sum0 += count
print(sum0)

以上代码看上去比while循环简单一些,所以变成习惯上使用for循环。
注意: Python的区间左边可以等于,右边一定不等于,即左闭右开。

range函数可以接受3个参数,range(start,stop,step)产生一个从start开始到stop结束的一个整数序列,step是步长。

🐍for…else…循环

While…else…的语法格式如下:

for 临时变量 in 可迭代对象 :
	循环体
else :
	代码块2

当for循环体正常执行完后执行else代码块中的内容,否则不会执行else中的代码。
如上述银行卡吞卡使用for循环就会这样写:

password = input("输入密码:")
for i in range(1,3,1) :
    if password == "000000" :
        print("密码正确,您可以取款了")
        break
    else :
        input("密码错误,请再一次输入密码:")
else: print("密码错误,卡被吞")

运行结果如下:
在这里插入图片描述

🐍循环体结束语句

Python的循环逻辑控制是依靠for和while这两种语句来实现的。但是,有时不需要把循环执行完,条件合适时需要直接退出循环,这时可以使用break语句。还有一种需求,不需要退出整个循环,而是退出本次循环,可以使用continue语句。这两个语句的区别如下:
1、break用于完全结束一个循环,跳出循环体之行循环后面的语句。
2、continue只是终止本次循环,接着还之行后面的循环。

下面经过具体实例来了解break和continue的使用:

  • 循环打印奇数

如果判断是偶数,进入下一次循环,如果判断是奇数,直接打印。

for i in range(1,11) :
    if i%2==0 :
        continue
    print(i)

运行如下:
在这里插入图片描述

  • 循环打印闰年

循环找出2020-2051年中的第一个闰年。

for year in range(2020,2051) :
    if year%4==0 and year%100!=0 or year%400==0 :
        print(year)
        break

运行如下:
在这里插入图片描述

🐍嵌套循环

以打印九九乘法表为例:

1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81	

分析以上九九乘法表的思路,从输出格式中可以看到数字是从1乘1一直到9乘9,要形成1到9两个数交叉相乘的效果,就必须依靠循环嵌套,代码如下。

for i in range(1,10) :
    for j in range(1,10) :
        print("%d*%d=%d"%(i,j,i*j))

运行结果如下:
在这里插入图片描述
可以看出以上代码打印的是竖向的乘法表,原因是目前的结束符是换行,修改结束符即可。现在把结束符换成“/t”制表符。

修改后的代码如下:

for i in range(1,10) :
    for j in range(1,10) :
        print("%d*%d=%d"%(i,j,i*j),end="\t")
    print()

运行结果如下:
在这里插入图片描述
此时每一行的的第一个字符相等,与结果的每一列字符相等,所以输出可以将i和j互换。并且,应该是第一行只留11,第二行只留12,2*2,以此类推才能实现要求的乘法表。具体方法是当外层循环比内层循环数字小时,退出本层循环。最终代码如下:

for j in range(1,10) :
    for i in range(1,10) :
        if i > j :
            continue
        print("%d * %d = %d"%(i,j,i*j),end="\t")
    print()

运行结果如下:
在这里插入图片描述
今天就讲到这里,拜了个拜~

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

史迪崽儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值