【Python不是大蟒蛇】 循环结构 | continue和break | 编程小练习

Ⅰ.循环结构

0x00 引子

我们在上一篇讲到了结构化编程,我们也学习了结构化编程里的分支结构。(忘记的同学可以回去复习一下,再来学。传送门

我们将在这节课学习结构化编程里的循环结构。

莫同学:循环结构有什么用,分支在手我啥也不要

来!这位同学你过来。

 来,我问你,你把1~10打印出来,一个数字一行!

print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)

来,1~1000!

print(1)
print(2)
# ...
print(1000)

 

来,我们继续上课。

接下来,让我们写一个打印1~10000以内偶数的程序。

 好了,不玩了。

计算机最擅长的事情就是做重复的事情。

循环结构就是用来执行重复相似的代码。

循环结构的定义(百度百科):

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。

就问你帅不帅,好了,接下来我们就正式开始学习循环结构了。

0x01 while 循环 

while循环一般用于循环次数不确定的地方(包括死循环等)

while循环要使用python中的关键字while。

基本格式如下:

while 判断条件: #条件为真才执行
    代码块      #注意:每次循环前都会检查判断条件是否为真,为假就退出循环体

我们来体验一下循环的妙处

还记得刚才讲的问题吗?

回忆:接下来,让我们写一个打印1~10000以内偶数的程序

我们如果用while循环来做就不用一直

我们先写一个框架

i = 0 # 我们定义一个变量,用于记录当前是第几次循环

while i <= 10000: # 因为是1~10000,如果i大于10000就结束循环
    print(i)
    i += 1 # 每次都要把变量i+1

"""
输出:
0
1
2
3
4
5
....
10000
"""

因为我们只输出偶数,就要用的上节课的分支结构了

忘记的同学可以回去复习一下传送门

 代码添加if判断后变成

i = 0 # 我们定义一个变量,用于记录当前是第几次循环

while i <= 10000: # 因为是1~10000,如果i大于10000就结束循环
    if i % 2 == 0: # 只有i除2的余数为0才打印
        print(i)
    i += 1 # 每次都要把变量i+1

"""
输出:
0
2
4
....
10000
"""

我们也可以修改计数器增加的量

i = 0 # 我们定义一个变量,用于记录当前是第几次循环

while i <= 10000: # 因为是1~10000,如果i大于10000就结束循环
    print(i)
    i += 2 # 修改为2,这样打印的都是二的倍数

"""
输出:
0
2
....
10000
"""

值得一说,循环真的太妙了!!!

如果我们要一直打印二的倍数呢(直到电脑死机)

这时候就需要用的死循环了。

想必有些同学已经想到了,只需要把他的判断条件设为True即可。

这样就能一直运行

i = 0 # 我们定义一个变量,用于记录当前是第几次循环

while True: # 设为死循环
    print(i)
    i += 2

"""
输出:
0
2
4
6
8
....
"""

想要终止死循环,就需要break关键字了。待会我们会讲,感兴趣的可以自己试一试。

0x02 for循环 

for语句实际上解决的是循环问题。在很多的高级语言中都有for循环(for loop)。

for语句是编程语言中针对可迭代对象的语句,它的主要作用是允许代码被重复执行。

  • 是什么:在计算科学中,是针对特殊迭代对象的控制流语句,能够重复执行
  • 怎么构成:一个头部(是可迭代对象)+ 每个对象的执行体

基本语法如下:

for 变量名 in 可迭代对象:
    代码块

我们发现这里面出现了一个新的名词:“可迭代对象”

什么是可迭代对象

可迭代对象(Iteratable Object) 是能够一次返回其中一个成员的对象,比如我们常用的字符串、列表、元组、集合、字典等等之类的对象都属于可迭代对象,获取到这些对象我们就可以用for循环来进行操作。

在这里面,我们只简单学过字符串,其他会在后面讲。

我们先来体验一下for循环的奥妙吧

还记得我们刚才的例子吧。

我们如果用for循环来写就会减少不少代码。

毕竟for循环比while更适合循环已知的代码。

for i in range(1, 10001):
    if i % 2 == 0: # 在for循环内可以直接使用变量名访问当前的迭代到的对象
        print(i)

 这里面出现了一个陌生的内置函数

range(1, 10001)

我们用help函数获取对这个的帮助

参考翻译

range(stop)->范围对象

|range(start,stop[,step])->range对象

|

|返回一个对象,该对象从开始(包括开始)生成一系列整数

|逐步停止(排他)。范围(i,j)产生i,i+1,i+2。。。,j-1。

|start默认为0,省略stop!范围(4)产生0、1、2、3。

|这些正是4个元素列表的有效索引。

|当给出步长时,它指定增量(或减量)。

 想必大家看帮助说明就明白了

如果我们用上步长这一参数。。。

for i in range(0, 10001, 2): print(i)

 我是压行大师

我在前面说过,for循环还可以遍历字符串。

我们这次试着把输入的字符串遍历打印出来,中间以空格分隔。

s = input() # 获取用户输入

for c in s: # 遍历字符串s
    print(c, end=' ') # 打印当前遍历到的变量,以空格结尾

我们尝试一下。

没有问题。

突发奇想一下,能不能遍历数字呢?

 

 

嘿嘿 

最后,我认为for循环和while循环是相辅相成的,缺一不可。

 Ⅱ.continue和break

0x00 continue

当continue语句在循环结构中执行时,并不会退出循环结构,而是立即结束本次循环,重新开始下一轮循环,也就是说,跳过循环体中在continue语句之后的所有语句,继续下一轮循环。

因此如果我们使用continue,刚才的程序就可以变成

for i in range(1, 10001):
    if i % 2 != 0: continue
    print(i)
"""输出:
0
2
4
6
...
"""

continue还是十分容易理解的,很快就讲完了

0x01 break

如果我们自制一个游戏,但玩家的hp(血量)小于等于0的时候要怎么退出游戏的死循环呢?

这时候就要用的break关键字了。

break关键字可以退出离他最近的一层循环,也就是终止当前所在的循环了。

听起来是不是十分好奇呀?

让我们使用while循环完成最初的示例,打印0~10000内的使用偶数。

i = 0 # 初始化计数器的值为0
while True:
    print(i)
    i += 2 # 增加计数器
    if i > 10001: break # 如果计数器的值大于10001就退出当前循环

针不戳!

Ⅲ.编程小练习

输入:用户会输入两行,第一行是矩阵的宽,第二行是矩阵的高

输出:输出一个方型矩阵,打印出来的图案是有“*”和“~”交替输出。

例1:

输入:

5
5

输出:

~ * ~ * ~ 
* ~ * ~ *
~ * ~ * ~
* ~ * ~ *
~ * ~ * ~

我们可以先自己想一下。

我们这里需要用的嵌套循环。

我们先把输入给打好吧

x = int(input()) # 把输入的第一行赋值给x变量,因为输入的默认类型是字符串,所以要类型转换
y = int(input())

 好了,我们思考一下怎么打印出矩阵

我们可以嵌套循环

for i in range(y): # 遍历打印每一行
    for j in range(x): # 遍历打印每一行的元素
        print('x', end=' ') # 因为是由空格分开的

 

没有换行,所以我们要做第一层循环最后添加一个换行,也就是什么也不打印,但要换行

 

for i in range(y): # 遍历打印每一行
    for j in range(x): # 遍历打印每一行的元素
        print('x', end=' ') # 因为是由空格分开的
    print()

再试试

 我们还剩最后一般交错打印图案

逻辑应该是这样的

if j % 2 - i %2: print('*', end=' ') 
else : print('~')

这样我们的代码最后就变成了这样

x = int(input())
y = int(input())

for i in range(y):
    for j in range(x):
        if i % 2 - j % 2: print('*', end=' ')
        else: print('~', end=' ')
    print()

 

这样我们的编程练习就大功告成了

 在这个示例中,我们复习了之前的分支结构和循环结构。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python循环结构breakcontinue的区别是: - break语句用于终止整个循环,一旦break语句被执行,循环将立即停止,不再执行剩余的循环语句,并跳出循环。 - continue语句用于跳过本次循环,一旦continue语句被执行,循环将会跳过本次循环中剩余的语句,并开始下一次循环。 需要注意的是,breakcontinue只能在循环语句中使用,而不能在其他语句中使用。 ### 回答2: 在Python循环结构中,breakcontinue都用于控制循环的执行流程,但它们的作用有所不同。 break用于立即终止当前的循环,并跳出循环体。当在循环内部遇到break语句时,循环会立即终止,程序会跳出整个循环体,继续执行循环后的代码。因此,break通常用于在满足某个条件时,提前结束循环。 例如: ```python for i in range(1, 10): if i == 5: break print(i) ``` 上述代码中,当i的值等于5时,break语句被执行,循环立即终止,输出结果为1、2、3、4。 而continue语句则用于结束当前一次循环,进入下一次循环的开始处。当在循环内部遇到continue语句时,程序会跳过当前循环剩余的代码,直接进入下一次循环的执行。因此,continue通常用于跳过某些不满足条件的迭代。 例如: ```python for i in range(1, 5): if i == 3: continue print(i) ``` 上述代码中,当i的值等于3时,continue语句被执行,直接进入下一次循环。因此,输出结果为1、2、4。 综上所述,break用于立即终止整个循环并跳出循环体,而continue用于结束当前一次循环,直接进入下一次循环的执行。 ### 回答3: 在Python循环结构中,`break`和`continue`是用来控制循环的关键字,它们的作用和用法有一些不同。 `break`关键字用于立即终止当前的循环,不再执行循环中之后的代码。当某个条件满足时,使用`break`可以跳出循环,不再继续执行下面的循环语句。例如,在一个`for`或`while`循环中,当某个元素或条件满足后,可以使用`break`来提前终止循环。这样可以节省了不必要的循环和计算。 `continue`关键字用于跳过当前循环中剩余的代码,直接进入下一次循环。当某个条件满足时,使用`continue`可以跳过该轮循环中剩余的代码,直接进入下一轮循环。`continue`的作用是跳过某些特定情况下不必要的代码,以提高程序的执行效率。 总结起来,`break`用于终止整个循环并退出,而`continue`用于结束当前循环的迭代,进入下一次循环。`break`是跳出循环的关键字,而`continue`是跳过循环的关键字。它们的作用不同,但都可以用来改变循环的控制流程,根据具体情况选择使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值