购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4
循环语句

反复做同一件事的情况称为循环。循环主要有以下两种类型:

(1)重复一定次数的循环,称为计次循环,如for循环。

(2)一直重复直到条件不满足时才结束的循环,称为条件循环。只要条件为真,这种循环会一直持续下去,如while循环。

2.4.1 while循环

while循环是通过一个条件来控制是否要继续反复执行循环体中的语句。其语法格式如下:

    while条件表达式:
    循环体

循环体是指一组被重复执行的语句。当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。

在使用while循环语句时,一定不要忘记添加将循环语句变为False的代码,否则,将产生死循环。如下是一段死循环的代码示例:

    i=0
    while True:
    i=i+1
    print(i)

上述代码会一直在循环中打印i的值,因为没有将循环语句变为False的代码,因而不会退出循环,成为死循环。

2.4.2 for循环

for循环是一个依次重复执行的循环,通常适用于枚举、遍历序列,以及迭代对象中的元素。其语法格式如下:

    for迭代对象in对象:
    循环体

其中,迭代变量用于保存读取出的值;对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。

1.数值循环

在使用for循环时,最基本的应用就是进行数值循环。例如,想要实现从1到100的累加,可以通过下面的代码实现:

    print('计算1+2+3+...+100的结果为:')
    result=0
    for I in range(101):
        result+=1
    print(result)

在上面的代码中,使用了range()函数,该函数是Python的内置函数,用于生成一系列连续的整数,主要用于for循环语句中,其语法格式如下:

    range(start,end,step)

参数说明:

● start:用于指定计数的起始值,可以省略,如果省略则从0开始。

● end:用于指定计数的结束值(但不包括该值,如range(7)得到的值为0~6,不包括7),不能省略。当range()函数中只有一个参数时,即表示指定计数的结束值。

● step:用于指定步长,即两个数之间的间隔,可以省略,如果省略则表示步长为1。例如,range(1,5)将得到1、2、3、4。

例如,使用下面的for循环语句输出10以内的所有奇数:

    for I in range(1,10,2):
    print(I,end='')

关于for语句的一个常见错误就是for语句后面未加冒号,例如下面的代码:

    for number in range(1,100)

运行后,会产生invalid syntax的错误,解决办法就是在第一行代码的结尾处添加冒号。

    for number in range(1,100):
2.遍历字符串

使用for循环语句除了可以循环数值之外,还可以逐个遍历字符串。

【例2.2】将横向显示的字符串转换为纵向显示。

    string='我相信我可以'
    print(string)# 横向显示
    for ch in string:
    print(ch)#纵向显示

上述代码运行结果如图2.3所示。

图2.3 遍历字符串结果

2.4.3 循环嵌套

在Python中,允许在一个循环体中嵌入另一个循环,这称为循环嵌套。在Python中,for循环和while循环都可以进行循环嵌套。

(1)在while循环中套用while循环的格式如下:

    while条件表达式1:
        while条件表达式2:
            循环体2
        循环体1

(2)在for循环中套用for循环的格式如下:

    for 迭代对象1 in 对象1:
        for 迭代对象2 in 对象2:
            循环体2
        循环体1

(3)在while循环中套用for循环的格式如下:

    while 条件表达式:
        for 迭代对象 in 对象:
            循环体2
        循环体1

(4)在for循环中套用while循环的格式如下:

    for 迭代对象 in 对象:
        while 条件表达式:
            循环体2
        循环体1

除了上面介绍的4种循环嵌套格式外,还可以实现更多层的嵌套。

【例2.3】使用嵌套的for循环打印九九乘法表。

    # 外层循环,i从1到9
    for i in range(1, 10):
        # 内层循环,j从1到i(包括i)
        for j in range(1, i + 1):
            # 打印乘法表的每一项,格式为:j*i=i*j,中间用制表符分隔
            print(str(j) + "*" + str(i) + "=" + str(i * j) + "\t", end="")
        # 每行打印完毕后换行
        print("")

上述代码运行结果如图2.4所示。

图2.4 乘法表结果 a18+zxHIH3njzB4xo3BrPhCkeNewNTZiQHwYkM6xAFRC3bFjmOnY1uvKNFCHioY3

点击中间区域
呼出菜单
上一章
目录
下一章
×