Python流程控制

149 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

流程控制

通常情况下,代码是按照从上到下,从左到右的顺序执行的,这个和日常生活中的白话文文章读写顺序类似:

读取用户参数 a

对a进行平方运算,结果赋值给b

获取结果b

但是实际的工作和生活当中,好多事情的表述并不是这样: 读取用户参数 a

如果a大于10,对a进行三次加密,结果赋值给b

否则对a进行平方运算,,结果赋值给b

获取结果b

所以,实际的工作当中必须考虑语句执行的条件和顺序,这个很需要大家注意。

Python的流程控制

python的流程控制分为:循环和判断两种,先说循环:

if判断

语法:

在工作当中,如果遇到有的语句或者代码块只是在指定的条件下才会执行,那么就用到了if判断,Python当中的if判断用到的关键词有三种,分别是:

if
elif
else

代码结构如下:

if 条件1:
   条件1满足情况下执行的语句
elif 条件2:
   条件2满足情况下执行的语句
elif 条件3:
    条件3满足的情况下执行的语句
else:
    上述条件都不满足的情况下执行的语句

注意:

1、一个判断只能有一个if和else,但是可以有n个elif(嘿嘿嘿,但是没有else-if)

2、if判断只会执行一个分支,任意一个分支执行成功了就不向下执行了。所以大家要区分一下两个if和if elif的区别,这个很有意思

3、根据第一点,在写判断的时候,条件范围小的放在上面,否则会导致覆盖,比如:

age = 20
if age > 10:
    print("大于10")
elif age > 15:
    print("大于15")
#这样的判断第二个条件就永远执行步到,应为大于15的数字肯定大于10,你品,你细品

案例:

age = input("请输入你的年龄>>>")
if age > 80:
    print("耄耋")
elif age > 60:
    print("古稀")
elif age > 40:
    print("不惑")
else:
    print("努力")

for循环

在编程工程当中,避免不了重复功能的出现,但是重复功能是有区别的,有的重复是有规律的,有的重复是随机的,有序的比如:

1、显示100遍:嘿嘿嘿,德玛西亚

2、创建100个文件夹

这种情况下当然可以通过复制代码实现,复制的效率也不低,但是,要想到,如果发生修改,那么。。。。。

这种情况下就需要用到循环,让电脑帮我们重复,玩游戏的小伙伴子们肯定憧憬过这样的功能,带你打怪升级刷图。。。。。

所以循环除了解决功能重复带来的编写问题,更重要的是代码重复带来的修改维护问题。

至于无序的,我们后续讨论,嘿嘿嘿。

语法:

for 变量 in "可循环对象"#初期可循环对象可以理解为有可以拆分元素的对象,比如字符串,列表,元组,字典,但是数字不可以。
    循环语句块

这里需要解释一下,这个语句的意思就是:

声明一个变量,然后把后面可循环对象的元素依次赋值给这边变量,每次赋值,执行一次下面的循环语句块

这里比较难理解,我们看上面 创建100个文件夹的案例:

for i in range(100): #range(100) 就是一个从099的可循环对象
    print(i)  #第一次讲range(100) 的第一个元素 0 取出来 赋值给 i 所以这里i0 ,第二次为1,直到i99结束

注意:

1、for 循环比较抽象,小白同学需要多敲几次来熟悉

2、for 循环的变量在缩进外也可以调用到,就是最后一次循环的值

while循环

for 循环可以解决大部分的循环问题了,但是实际上,有些时候开发过程当中,并不能知道固定的循环次数,比如:

有一个大老板要给老家18岁一下学生每年发一次钱,那么有的学生现在12岁了,有的学生现在8岁了,有的学生今年19岁了(嘿嘿嘿),那么,到底该发多少次呢,发18次,9次还是1次,这个时候就需要一种新的循环方式,条件式 的循环,也就是while循环。

语法:

while 条件:
    执行语句块

当满足条件(也就是条件为真)的时候,执行下面的语句块,执行完再次判断,还是满足,再次执行,完成再次判断,直到判断条件不满足,上面的案例我们可以这样写:

age = input("请输入你的年龄>>>")
number = 0
while age < 15:
    age += 1
    number += 1
print("需要发%s年钱"%number)

注意:

1、while循环条件成立就会执行,如果条件一直成立就一直执行,所以有了死循环,比如直接while True:

2、学习过程当中,if,for,while是分开学习的,但是工作当中通常是嵌套使用的,但是需要先单独练习熟练,要不然嵌套必晕。