Python基础语法——循环

在我们编程的过程中,有些代码是需要不停的重复执行的,而计算机特别擅长做这些重复的工作。

我们使用循环,循环可以不停地重复执行一段代码,一遍又一遍的执行,直到循环结束。
一、For循环
假如我们想要利用海龟绘制一个宽度为100像素的正方形。
在这里插入图片描述分析:

  • 海龟从原点开始,利用turtle.forward(100)向前绘制一段100像素的线段,然后利用turtle.left(90)开始左转90°,至此正方形的一条边绘制完成;
  • 重复第一条指令;
  • 重复第一条指令
  • 重复第一条指令,这样海龟回到了原点,正方形的4条边绘制完成。

代码:

import turtle as t

# 第一条边
t.fd(100)  # 前进100像素
t.lt(90)   # 左转90°

# 第二条边
t.fd(100)
t.lt(90)

# 第三条边
t.fd(100)
t.lt(90)

# 第四条边
t.fd(100)
t.lt(90)

程序重复执行了t.fd(100)t.lt(90)这两段代码,重复的代码执行了4次。
使用for循环:

import turtle as t

for x in range(4):
    t.fd(100)
    t.lt(90)

Python中的for循环会遍历一个列表中的各项,这里绘制正方形,需要重复4次,所以需要创建一个包含4个数字的列表。
range(n):

range(n)创建一个包含n个数字,从0到n-1的数字列表

例如range(4)创建的列表为[0,1,2,3],是一个0到3的4个数字的一个列表。

list = list(range(4))
print(list)
[0, 1, 2, 3]

range(start,stop):

range(1,10)有两个参数,1是开始的值,10是结束的值,会从开始值到结束值创建一个数字列表(迭代器),但不包括结束值10
list = list(range(1,10))
print(list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start, stop, step):

range(0,10,2)包含3个参数,第三个参数是步长,控制数字每次增加2
list = list(range(0,10,2))
print(list)
[0, 2, 4, 6, 8]

在这里插入图片描述for循环中,首先要有关键字for,然后一个变量x,变量x是一个计数器/迭代器,关键字in告诉for循环,使用变量x来遍历范围列表中的每一个数值,range(4)提供一个0到4的列表[0,1,2,3],可以用来遍历,循环体语句要缩进4个空格。

注意:for循环语句最后的冒号":"不能少
在这里插入图片描述range(4)构建了一个含有4个数字的列表,变量x就会记录循环体重复执行4次,当遍历完了列表中的所有数字后,循环就终止了。
二、while循环
如果我们不确定循环要执行多少次,如果我们想要在某个事件发生的时候,要终止循环,这时候该怎么办?

这时候我们可以使用另外一种循环——while循环。

while循环只需要一个循环条件,只有满足这个条件,程序才可以执行,不满足这个条件,程序就不执行。
while condition:  # 循环条件
    indented statement(s)  # 循环体语句

while循环中这个条件通常是一个判断真假的布尔表达式,或是一个真假测试(True/False)。

while循环中,只要条件为真,while循环就会持续重复循环中的语句,判断真假条件往往涉及到比较值。

比较操作符:
在这里插入图片描述

x = 1
while x < 10:
    x = x +1   # 循环体

print(x)

定义了一个变量x,初始值为1,while循环的条件x < 10,只要x的值小于10,就执行x=x+1这个语句,循环体重复执行9。

x = 1       x < 10 满足条件    执行x=x+1语句,x+12,赋值给x,x=2
x = 2       x < 10 满足条件    执行x=x+1语句,x+13,赋值给x,x=3
x = 3       x < 10 满足条件    执行x=x+1语句,x+14,赋值给x,x=4
x = 4       x < 10 满足条件    执行x=x+1语句,x+15,赋值给x,x=5
x = 5       x < 10 满足条件    执行x=x+1语句,x+16,赋值给x,x=6
x = 6       x < 10 满足条件    执行x=x+1语句,x+17,赋值给x,x=7
x = 7       x < 10 满足条件    执行x=x+1语句,x+18,赋值给x,x=8
x = 8       x < 10 满足条件    执行x=x+1语句,x+19,赋值给x,x=9
x = 9       x < 10 满足条件    执行x=x+1语句,x+110,赋值给x,x=10
x = 10     x < 10 不满足条件   不在进入循环体,跳出来了,最后打印x值

三、无限循环
当条件一直为真的时候,循环程序就会一直重复的运行。

while True:
    print("条件为真!")

我们把循环的条件设置为一个固定的值:True(真),这就是一个无限循环程序,程序一直打印“条件为真!”,直到你退出程序才会终止。

逃离无限循环:

continue关键字跳出当前循环,在循环体内部有多层循环,continue可以跳出当次循环,继续执行下一次循环
break关键字可以跳出整个循环

使用break:

x = 1
while x < 10:
    x = x + 1
    
    if x == 5:  # 如果x=5,就跳出循环
        break
print(x)
x = 1       x < 10 满足条件    执行x=x+1语句,x+12,赋值给x,x=2 不满足条件x==5
x = 2       x < 10 满足条件    执行x=x+1语句,x+13,赋值给x,x=3 不满足条件x==5
x = 3       x < 10 满足条件    执行x=x+1语句,x+14,赋值给x,x=4 不满足条件x==5
x = 4       x < 10 满足条件    执行x=x+1语句,x+15,赋值给x,x=5
同时满足条件x==5,执行break,跳出循环,程序终止,打印出5

使用continue:

x = 1
while x < 10:
    x = x + 1
    if x == 5:  # 如果x=5,跳过,继续执行
        continue
    print("x = %d" % x)
x = 2
x = 3
x = 4
x = 6
x = 7
x = 8
x = 9
x = 10
x = 1       x < 10 满足条件    执行x=x+1语句,x+12,赋值给x,x=2  不满足条件x==5 打印x = 2
x = 2       x < 10 满足条件    执行x=x+1语句,x+13,赋值给x,x=3  不满足条件x==5 打印x = 3
x = 3       x < 10 满足条件    执行x=x+1语句,x+14,赋值给x,x=4  不满足条件x==5 打印x = 4
x = 4       x < 10 满足条件    执行x=x+1语句,x+15,赋值给x,x=5  满足条件x==5 跳过print("x = %d" % x)语句
x = 5       x < 10 满足条件    执行x=x+1语句,x+16,赋值给x,x=6  不满足条件x==5 打印x = 6
x = 6       x < 10 满足条件    执行x=x+1语句,x+17,赋值给x,x=7  不满足条件x==5 打印x = 7
x = 7       x < 10 满足条件    执行x=x+1语句,x+18,赋值给x,x=8  不满足条件x==5 打印x = 8
x = 8       x < 10 满足条件    执行x=x+1语句,x+19,赋值给x,x=9  不满足条件x==5 打印x = 9
x = 9       x < 10 满足条件    执行x=x+1语句,x+110,赋值给x,x=10 不满足条件x==5 打印x = 10
x = 10     x < 10 不满足条件   不在进入循环体,跳出来了,程序终止

在程序执行到x=4时,满足条件x<10,进入循环体,执行x=x+1,变成5,满足条件x==5 执行continue语句,跳过print("x = %d" % x)语句,继续执行条件判断x<10

四、循环里面的循环

我们可以在一个循环体里面增加一个循环,即嵌套循环。在一个嵌套循环中,里面的循环在外部循环之内运行。

注意:循环体内部的代码必须要缩进4个空格

for x in range(3):   # 外部循环
    for y in range(2): # 内部循环
        print("我是内部循环")

    print("我是外部循环\n")

外部循环执行3次,内部循环执行2次。

外部循环变量x=0:内部循环变量y=0,执行print("我是内部循环")
                内部循环变量y=1,执行print("我是内部循环")
 外部循环执行print("我是外部循环\n")
外部循环变量x=1:内部循环变量y=0,执行print("我是内部循环")
                内部循环变量y=1,执行print("我是内部循环")
 外部循环执行print("我是外部循环\n")
外部循环变量x=2:内部循环变量y=0,执行print("我是内部循环")
                内部循环变量y=1,执行print("我是内部循环")
 外部循环执行print("我是外部循环\n")

整个内嵌的for循环是被包在外部for循环里面的,外部循环每执行一次,内部循环就会执行两次。这样外部循环一共执行3次,内部循环一共执行6次。

我是内部循环
我是内部循环
我是外部循环

我是内部循环
我是内部循环
我是外部循环

我是内部循环
我是内部循环
我是外部循环

案例:
打印九九乘法表

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

    print("")

%d是一个占位符,%t表示一个空档,相当于按了键盘上的Tab按键。

end=""可以让输出不会自动分行,关键字end告诉程序用一个空格来结束每一条print()语句。

在这里插入图片描述在这里插入图片描述谢谢大家的关注,有不足的地方欢迎指正。

更多内容可以关注微信公众号【陪孩子一起学编程】
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值