天天看点

python if elif else_Python学习-流程控制之if...else

python if elif else_Python学习-流程控制之if...else

流程控制之if...elsehttps://www.zhihu.com/video/1180172302666399744

假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

基本上在各个语言中,都是用语法if…else…来实现,可分为单分支、双分支、多分支

单分支
  1. if

    条件:

  2. 满足条件后要执行的代码

python if elif else_Python学习-流程控制之if...else
双分支
  1. if

    条件:

  2. 满足条件执行代码

  3. else:

  4. if条件不满足就走这段

  1. AgeOfOldboy

    =

    48

  2. if

    AgeOfOldboy

    >

    50

    :

  3. print("Too old, time to retire..")

  4. else:

  5. print("还能折腾几年!")

缩进
这里必须要插入这个缩进的知识点

你会发现,上面的if代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?

在其它的语言里,大多通过

{}

来确定代码块,比如C,C++,Java,Javascript都是这样,看一个JavaScript代码的例子

  1. var age =

    56

  2. if

    ( age <

    50){

  3. console.log("还能折腾")

  4. console.log('可以执行多行代码')

  5. }else{

  6. console.log('太老了')

  7. }

在有

{}

来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。

Python是门超级简洁的语言,发明者定是觉得用

{}

太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。

Python的缩进有以下几个原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
多分支

回到流程控制上来,if…else …可以有多个分支条件

  1. if

    条件:

  2. 满足条件执行代码

  3. elif

    条件:

  4. 上面的条件不满足就走这个

  5. elif

    条件:

  6. 上面的条件不满足就走这个

  7. elif

    条件:

  8. 上面的条件不满足就走这个

  9. else:

  10. 上面所有的条件不满足就走这段

写个猜年龄的游戏吧

  1. age_of_oldboy =

    48

  2. guess = int(input(">>:"))

  3. if guess > age_of_oldboy :

  4. print("猜的太大了,往小里试试...")

  5. elif guess < age_of_oldboy :

  6. print("猜的太小了,往大里试试...")

  7. else:

  8. print("恭喜你,猜对了...")

上面的例子,根据你输入的值不同,会最多得到3种不同的结果

此时让学生自己也默写一遍这段代码

再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下

  1. A 90-100

  2. B 80-89

  3. C 60-79

  4. D 40-59

  5. E 0-39

要求用户输入0-100的数字后,你能正确打印他的对应成绩

  1. score =

    int(input("输入分数:"))

  2. if score >

    100:

  3. print("我擦,最高分才100...")

  4. elif score >=

    90:

  5. print("A")

  6. elif score >=

    80:

  7. print("B")

  8. elif score >=

    60:

  9. print("C")

  10. elif score >=

    40:

  11. print("D")

  12. else:

  13. print("太笨了...E")

这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件

elif score >=80:

呀, 为什么不打印B呢?

这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

继续阅读