美文网首页
python入门:while循环

python入门:while循环

作者: 天涯待归客 | 来源:发表于2017-05-26 15:49 被阅读74次

    当我们需要重复执行某种操作的时候,就需要使用循环语句。上期我们讲到了,可以依托一个序列来实现for循环。可是,我们未必总是能找到一个序列来辅助实现循环。譬如,当我们只知道一个循环终止条件的时候,就只能使用while循环语句。

    while循环语句

    在while循环中,while是关键词,表示一个循环的开始;表达式是循环执行的前提条件,当这个表达式的逻辑值为True的时候,代码块会继续执行。while循环的一般形式是如下:

    # 基本形式
    while 表达式:
        代码块
    
    # 当前n项和大于100时,打印此时的n
    summation, index, numbers = 0, 0, range(0,100)
    while summation <= 100:
        summation = summation + numbers[index]
        index = index + 1
    print(index-1)
    

    上面的例子实现的是:计算1,2,3...n的和(n <= 100),当这个和大于100,打印对应的n。

    python支持多个参数同时赋值,summation, index, numbers = 0, 0, range(0,100),可以看作是把元组(0, 0, range(0,100))赋值给列表[summation, index, numbers]。相应地,summation被赋值为0,index被赋值为0,numbers被赋值为range(0,100)。

    while循环既可以在有序列的情况下使用,也可以在没有序列的情况下使用。并且while语句中,根据表达式的布尔值来决定代码块是否执行,相当于自带了一个if语句。由此看出,while循环语句 >= for循环语句 + if条件语句。

    如果有序列的话,尽量使用for循环,它依托一个确定的序列,不容易出错。

    拓展

    循环终止的条件只有两个,一是:表达式的逻辑值变为False;二是:执行到break语句;三是:在函数中执行到return语句。return语句用于函数,它给出了函数的返回结果,讲到函数时聪哥会具体介绍。

    永远无法终止的循环叫做死循环,死循环无益于问题的解决,还会占用大量计算机资源,应该尽量避免。代码执行过程中,使用快捷键Ctrl+C可以终止死循环。

    有一种while True + if + break的用法,就是利用了break语句跳出死循环。这种用法的好处是,将判定与循环分离,while专门用作循环,if来做判断,使得逻辑结构更加清晰,更容易理解。如果while语句十分熟悉,也建议直接使用while语句。

    # 打印第一个不及格的科目的分数
    scores = [89, 75, 83, 66, 92, 97,78, 57, 84]
    index = 0
    while True:
        if scores[index] < 60:
            print(scores[index])
            break
        index = index + 1
    

    类似于for-else语句,while语句也有else用法。在while循环中的表达式的布尔值为False时,执行else部分的代码块。

    # 基本形式
    while 表达式:
        代码块
    else:
        代码块
    # 打印第一个不及格的科目的分数
    scores = [89, 75, 83, 66, 92, 97,78, 57, 84]
    index = 0
    while scores[index] >= 60:
        index = index + 1
    else:
        print(scores[index])
    

    总结

    • while循环语句,不仅仅是一个for循环与一个if语句的合体
    • 尽量避免死循环,遇到死循环使用Ctrl+C终止
    • while True + if + break的用法,使逻辑结构更加清晰
    • while-else语句,可以包含循环加后处理

    思考

    # 自然数集中,由小到大,
    # 2是第一个质数,3是第二个质数,5是第三个质数,
    # 依此类推,11是第五个质数。
    # 请编写一个程序,找出第100个质数
    
    num = 1
    number = 2
    while num <= 100:
        for index in range(2,number):
            if number%index == 0 and index != number:
                break
            index = index + 1
        else:
            # print(num, number)
            num = num + 1
        number = number + 1
    print(number-1)
    

    print()语句可以用来调试代码,使用print(num, number)可以帮助我们知晓质数的编号。

    扫一扫这个二维码,关注公众号:聪哥python,获取最新python3基础教程

    聪哥python

    相关文章

      网友评论

          本文标题:python入门:while循环

          本文链接:https://www.haomeiwen.com/subject/uirxfxtx.html