Python学习day06-Python基础(4)流程控制之while和for循环

Python学习day06-流程控制之while和for循环

while循环

1. 语法

  • 循环便是一个重复的过程,让计算机重复性的作一件事情,而while循环就是让计算机重复作一件事情的一种方式,只要条件知足,就不断循环,条件不知足时退出循环,因此又称为条件循环。

2. while+break,while+continue

  • 在循环中,break语句能够提早退出循环,并且不会自动运行下一次循环,而continue则是跳出这次循环,继续进行下一次循环。具体示例以下代码:node

     
     
     
    xxxxxxxxxx
    8
     
     
     
     
    1
    2
    n = 1
    3
    while n <= 10 :
    4
    print(n,end = '')
    5
    n = n+1
    6
    if n == 5:
    7
    break
    8
    print('END')
     
     
    • 这段代码的执行结果就是python

      1234ENDweb

      显然就是到n == 5的时候遇到了break,会跳出循环,并不在执行。windows

    再来看一个continue的例子app

     
     
     
    xxxxxxxxxx
    7
     
     
     
     
    1
    n = 1
    2
    while n <= 10 :
    3
    n = n+1
    4
    if n == 5 :
    5
    continue
    6
    print(n)
    7
    print('END')
     
     
    • 上面这段代码的运行结果就是less

      23467891011ENDide

      显然,没有5,即n = 5的时候执行了continue,跳过了下面的print(n),因此没打印5,可是会继续执行循环,因此5以后的值仍是会打印出来。因此continue的做用便是提早结束本轮循环,继续执行下一轮循环。svg

3. while的嵌套

  • 一般用于多层判断的一些系统,好比银行ATM机取钱存钱的一些命令,内层while嵌套能够实现其退出循环并退出系统的目的。

for循环

1. 语法

  • for循环和while循环的一个比较大的不一样就是while的循环次数须要本身控制,可是for的循环次数是按照索引取值来判断的。因此while有可能会进入死循环,而for不会,因此用for来写循环代码更稳定。函数

  • 可是for也有不足,while循环内能够加世间万物,即全部的数据,但凡是有布尔值的,均可以放在while循环里,可是for只能对容器内的数据类型循环,即字符串,列表和字典,而且能够迭代,别的数据类型是不能做为for的循环条件的。

    例程以下:

     
     
     
    xxxxxxxxxx
    2
     
     
     
     
    1
    for i in range(1, 10):  # range顾头不顾尾
    2
        print(i)
     
     
    • 其实上述代码中的i能够不使用,其只是在循环中其一个循环标签的做用,即使输出中没有i也不会影响循环

2. for+break,for+continue

  • 用法相似于while,能够参考上文

3. 小实例,for循环实现loading

  • 须要注意的是,该实例只能在Jupyter中实现,pycharm因为其优化的功能并不能看出loading后面省略号缓缓出现这一效果,而是在延迟事后一次性出现。

    例程以下:

     
     
     
    xxxxxxxxxx
    6
     
     
     
     
    1
    import time
    2
    3
    print('Loading', end='')
    4
    for i in range(6):
    5
        print(".", end='')
    6
        time.sleep(0.2)
     
     
    • 上述代码中time.sleep即为time模块自带的延时函数,后面为延时时间,往后在不一样的场景中能够用获得。

一个很是有趣的\r

  • 在咱们平常码代码的过程当中,print用的再多不过了,但print里的一些参数相信你们有的仍是不甚了解,今天要说的是\r这样一个小参数

     
     
     
    xxxxxxxxxx
    1
     
     
     
     
    1
    print('\rXu')
     
     

    上述代码的输出结果就是Xu,没有任何问题,那么他的特殊性在哪呢?

    再来一段代码

     
     
     
    x
     
     
     
     
    1
    print('\rXu')
    2
    print('\rXu')
    3
    print('\rXu')
    4
    print('\rXu')
     
     

    猜一下结果是什么?没错,结果就是

    Xu

  • Xu

  • Xu

  • Xu

    仍是没有就职何特殊的,莫不成笔者在耍大家?

    不不不,再看一段

     
     
     
    x
     
     
     
     
    1
    print('\rXu',end = '')
    2
    print('\rXu',end = '')
    3
    print('\rXu',end = '')
    4
    print('\rXu',end = '')
     
     

    咱们都知道end = ‘’的定义方法是让该行输出以后不换行,因此,上面这段程序结果是什么?

    Xu

    没错,你没有看错,只有一个Xu,为何呢?

    结果就是\r加在print当中,原位打印的意思,也就是覆盖上一次打印的位置,并且仅限当前行。因此这就是为何在有换行的状况下\r并无什么效果。

    咱们能够来看下print的源码

     
     
     
    xxxxxxxxxx
    1
     
     
     
     
    1
    def print(self, *args, sep=' ', end='\n', file=None):
     
     

    上述代码咱们不难理解,若是没有end = ‘’,那么他就是\n,也就是换行的意思。

    哇,恍然大明白。

Tips:

循环是让计算机作重复任务的有效的方法。

break语句能够在循环过程当中直接退出循环,而continue语句能够提早结束本轮循环,并直接开始下一轮循环。这两个语句一般都必须配合if语句或者while语句使用。

要特别注意,不要滥用breakcontinue语句。breakcontinue会形成代码执行逻辑分叉过多,容易出错。大多数循环并不须要用到breakcontinue语句,上面的两个例子,均可以经过改写循环条件或者修改循环逻辑,去掉breakcontinue语句。

有些时候,若是代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时能够用Ctrl+C退出程序,或者强制结束Python进程。

相关文章
相关标签/搜索