美文网首页
Python系列教程(六):循环

Python系列教程(六):循环

作者: 阿甘笔记 | 来源:发表于2020-08-10 18:43 被阅读0次

    要计算1+2+3,我们可以直接写表达式:1 + 2 + 3
    要计算1+2+3+...+10,勉强也能写出来。
    但是,要计算1+2+3+...+10000,直接写表达式就不可能了。
    为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。

    Python的循环有两种,一种是while循环,另一种是for循环。

    一、while循环

    1.1 while循环的格式

    while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
    

    示例如下

    i = 0
    while i<5:
        print("当前是第%d次执行循环"%(i+1))
        print("i=%d"%i)
        i+=1
    

    结果:

    当前是第1次执行循环
    i=0
    当前是第2次执行循环
    i=1
    当前是第3次执行循环
    i=2
    当前是第4次执行循环
    i=3
    当前是第5次执行循环
    

    1.2 while循环应用

    1.计算1~100的累积和(包含1和100)

    参考代码如下:

    i = 1
    sum = 0
    while i<=100:
        sum = sum + i
        i += 1
    
    print("1~100的累积和为:%d"%sum)
    

    2.计算1~100之间偶数的累积和(包含1和100)

    参考代码如下:

    i = 1
    sum = 0
    while i<=100:
        if i%2 == 0:
            sum = sum + i
        i+=1
    
    print("1~100的累积和为:%d"%sum)
    

    1.3 while循环嵌套

    类似if的嵌套,while嵌套就是:while里面还有while

    <1>while嵌套的格式

    while 条件1:
    
        条件1满足时,做的事情1
        条件1满足时,做的事情2
        条件1满足时,做的事情3
        ...(省略)...
    
        while 条件2:
            条件2满足时,做的事情1
            条件2满足时,做的事情2
            条件2满足时,做的事情3
            ...(省略)...
    

    <2>while嵌套应用
    要求:打印如下图形:

    *
    * *
    * * *
    * * * *
    * * * * *
    

    参考代码:

    i = 1
    while i<=5:
    
        j = 1
        while j<=i:
            print("* ",end='')
            j+=1
    
        print("\n")
        i+=1
    

    二、for循环

    像while循环一样,for可以完成循环的功能。

    在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

    for循环的格式

    for 临时变量 in 列表或者字符串等:
        循环满足条件时执行的代码
    else:
        循环不满足条件时执行的代码
    

    示例如下:

    name = 'hello'
    
    for x in name:
        print(x)
    

    运行结果如下:

    h
    e
    l
    l
    o
    

    三、break

    在循环中,break语句可以提前退出循环。例如,本来要循环打印1~100的数字:

    n = 1
    while n <= 100:
        print(n)
        n = n + 1
    print('END')
    

    上面的代码可以打印出1~100。

    如果要提前结束循环,可以用break语句:

    n = 1
    while n <= 100:
        if n > 10: # 当n = 11时,条件满足,执行break语句
            break # break语句会结束当前循环
        print(n)
        n = n + 1
    print('END')
    

    执行上面的代码可以看到,打印出1~10后,紧接着打印END,程序结束。

    可见break的作用是提前结束循环。

    四、continue

    在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

    n = 0
    while n < 10:
        n = n + 1
        print(n)
    

    上面的程序可以打印出1~10。但是,如果我们想只打印奇数,可以用continue语句跳过某些循环:

    n = 0
    while n < 10:
        n = n + 1
        if n % 2 == 0: # 如果n是偶数,执行continue语句
            continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
        print(n)
    

    执行上面的代码可以看到,打印的不再是1~10,而是1,3,5,7,9。

    可见continue的作用是提前结束本轮循环,并直接开始下一轮循环。

    注意:

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

    • break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

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

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

    相关文章

      网友评论

          本文标题:Python系列教程(六):循环

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