Loading...
墨滴

瀋凣

2021/05/28  阅读:35  主题:极简黑

python笔记11

Python day11

1.循环结构

1.1 while循环

1.1.1 语法

while condition:
    statement(s)

1.1.2 举个栗子

>>> study = "no"
>>> while study == "no":
        study = input("今天你学python了吗?")

执行结果:

今天你学python了吗?no
今天你学python了吗?no
今天你学python了吗?no
今天你学python了吗?no
今天你学python了吗?yes
>>> 

1.1.3 练习:

从1累加到10000

>>> count = 1
>>> sum = 0
>>> while count <= 10000:
        sum = sum + count
        count = count + 1
        
>>> print(sum)
50005000

当条件一直成立,循环体就一直被执行。

>>> while True:
        print("作为一段没有灵魂的代码,我的任务就是不断的干活!")

执行结果:

作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
作为一段没有灵魂的代码,我的任务就是不断的干活!
……

你的程序会一直重复执行下去,直到笔记本没电了,或者按下 Ctrl + C 强制中断程序,停止循环。
像这样的循环我们称之为死循环。所谓死循环就是打死也不会结束的循环。
初学者其实是最怕遇到死循环的,因为,程序碰到死循环就是咱们一般意义上理解的死机了。
死循环会让python一直工作,累死累活的。所以,python如果在天有灵的话,一定不会喜欢程序里面出现死循环的。

那么是否可以理解为死循环就是坏东西,我们一定要敬而远之?
不是的,如果你是无意间写出一个条件永远为真的循环语句,那么这是个bug,我们应该尽量的去杜绝。
但如果这是一个精心设计的死循环,那么情况就另当别论了,因为死循环也是可以被设计的,也是可以被操控的。 那我们接下来就来讲讲如何操控退出死循环。

1.2 break语句

break语句可以跳出当前循环的循环体

1.2.1 举个栗子

>>> while True:
        answer = input("哥,我能退出循环了吗?")
        if answer == "可以":
            break

执行结果:

哥,我能退出循环了吗?不行
哥,我能退出循环了吗?继续
哥,我能退出循环了吗?坚持
哥,我能退出循环了吗?可以
>>> 

注意:在循环体内,一旦遇到break语句,python二话不说,马上就会跳出循环体。
即便这时候循环体内还有待执行的语句python也不会管你的。
测试一下:

>>> while True:
        answer = input("哥,我能退出循环了吗?")
        if answer == "可以":
            break
        print("唉,好累,感觉不会再爱了")

执行结果:

哥,我能退出循环了吗?不行
唉,好累,感觉不会再爱了
哥,我能退出循环了吗?继续
唉,好累,感觉不会再爱了
哥,我能退出循环了吗?坚持
唉,好累,感觉不会再爱了
哥,我能退出循环了吗?可以
>>> 

1.3 continue语句

continue表示我先出去一下,但这事没完,我还会回来的。
continue会跳出循环体,但是,他只是跳出本轮循环,它还会回到循环体的条件判断位置,然后继续下一轮的循环。如果条件还成立的话,那么他就会执行下一轮的循环。

1.3.1 举个栗子

>>> i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    print(i)

执行结果:

1
3
5
7
9

1.4 else语句

如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

1.4.1 语法

while 循环条件:
    条件成立时执行的循环体
else:
    条件不成立时执行的语句

1.4.2 举个栗子

i = 1
while i < 5:
    print("我在循环内,i的值是",i)
    i += 1
else:
    print("我在循环外,i的值是",i)

执行结果:

我在循环内,i的值是 1
我在循环内,i的值是 2
我在循环内,i的值是 3
我在循环内,i的值是 4
我在循环外,i的值是 5

这时候就有同学说了,你这不是多此一举嘛

i = 1
while i < 5:
    print("我在循环内,i的值是",i)
    i += 1
    
print("我在循环外,i的值是",i)

执行结果:

我在循环内,i的值是 1
我在循环内,i的值是 2
我在循环内,i的值是 3
我在循环内,i的值是 4
我在循环外,i的值是 5

如果从一个循环体寿终正寝的角度来考虑,确实else没有起到什么特殊的效果。

但大家不要忘了break语句。
break语句是一个可以使得循环死于非命的家伙。
else语句的定义是,当循环条件不再为真的时候,他才会被执行,那换言之,我们使用break语句跳出循环是中途跳出来的,这时候他的条件依旧为真。所以,用break语句跳出循环,else语句里的内容并不会被执行。

比如:

i = 1
while i < 5:
    print("我在循环内,i的值是",i)
    if i == 2:
        break
    i += 1
else:
    print("我在循环外,i的值是",i)

执行结果:

我在循环内,i的值是 1
我在循环内,i的值是 2

举个栗子:
每周学习打卡小程序

day = 1
while day <= 7:
    answer = input("今天你学python了吗?")
    if answer != "yes":
        break
    day += 1
else:
    print("恭喜,你已经坚持了7天连续学习!再接再厉~")

执行结果:

今天你学python了吗?yes
今天你学python了吗?yes
今天你学python了吗?yes
今天你学python了吗?yes
今天你学python了吗?yes
今天你学python了吗?yes
今天你学python了吗?yes
恭喜,你已经坚持了7天连续学习!再接再厉~
>>> 
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/05/28  阅读:35  主题:极简黑

作者介绍

瀋凣