学习笔记:流程图理解python语言之条件判断

2018-12-20  本文已影响67人  杜遥

流程图是什么:请跟着箭头指示往下走,程序就像走流程一样完成工作。

言归正传:咱们先看下python语言中条件判断 if 是什么?

If语句共有三个知识点:

if...

if...else...

if...elif...else...

如果用一句话来概括条件判断,就是——“让计算机在什么条件下干什么”   用流程图该这样表示:

一、if 【如果】的逻辑:

我们以《西游记》中,唐僧师徒在女儿国的遭遇为例来讲解。但是为了学习python编程,会适当地改编一下剧情。

话说唐三藏师徒一行人来到西梁女儿国,本想照验通关文牒,早日放行,谁知女儿国国王对唐僧一见倾心。

可是女王毕竟不是寻常人家的女子,她也有自己的为难之处。

这天午后,她一会游荡在御花园里,一会呆坐在宫殿里,纠结着贵为一国之君的自己,和已斩断红尘的出家人唐僧到底是否合适。

在思考了大半天之后,她自言自语道:上天啊,我也很纠结,要不你来帮我决定吧。如果今晚下雨了,那就说明我和唐三藏合适,可以在一起。

此种情况,在Python中,可以这样表述:

1  weather = input('请回答:今晚下雨or没下雨')

2  if weather == '下雨':

3      print('我和唐僧可以在一起。')

请问,你发现了么,当输入“下雨”时,程序会给出“我和唐僧可以在一起”的回复;但如果输入“不下雨”,程序什么也不会出现。因为这不满足下一行代码的要求!

所以我们需要重新审视下if语句的使用逻辑:

if ...(条件): 

 ...(做点儿什么) 

 ...(做点儿什么)...

(if语句的外部命令)

if 后面跟的是一个条件。当条件为真时,就执行内部缩进的命令(做点儿什么);如果条件为假,不管,跳过if,去执行if语句的外部命令。

用流程图理解即为:

满足条件(条件1为真)时执行动作一、动作二、动作三等,不满足跳出判断执行其他任务  

二、if...else 的【如果-否则】的逻辑:

回到女王的故事上面来。女王自己设定的是,如果晚上下雨,那么就表示,上天觉得女王可以和唐僧在一起。

你猜晚上下雨了吗?(⊙v⊙)嗯,下雨了。好,下一步,女王决定表白。

可是到了第二天早上,女王开始纠结新的东西——表白的结果。

唐僧如果答应了表白,当然好,自己愿意和他马上成婚;但是如果唐僧没有答应的话,是不是可以采取一些武力的手段呢?毕竟唐僧所处的行政区域正是自己管辖的领土,大唐的皇帝也管不到这么远。

这个逻辑如果体现在Python中,是这样的:

1 answer = input('唐僧接受了表白吗?请回答有or没有?')

2 if answer == '有':

3           print('很好,马上举行婚礼,全国放假')

4 else:   

 5         print('把唐僧软禁起来,从长计议')

(else代表否则如果)

所以 if...else...的使用逻辑也出来了。

1 if...(条件):   

2     ...(做点儿什么)    

3     ...(做点儿什么)

4 else:    

5    ...(干点儿别的)    

6    ...(干点儿别的)

if 后面跟的是一个条件,当条件为真时,执行 if 下面的(做点儿什么)命令,当条件为假时,跳到else: ,然后开始执行else: 下面的命令

放在流程图中:

当条件为真时,执行 条件1下面的(做点儿什么)命令,当条件为假时(否则),跳到否则线: ,然后开始执行下面的命令


三、if...elif...else... 的【如果1-如果2-否则】的逻辑:

照理说,女王该向唐三藏表白了。不过,毕竟是女王,习惯了身边有参谋,她又把自己的想法跟国师讲了下。

国师看女王这些天的状态,知道她一时为情所困,并不理性。唐僧取经,是奉王命行事,不论是成婚还是软禁唐僧,都涉及到大唐的政治关系,是一件外交上的麻烦事;而且国师私下也找唐僧谈过,了解他们师徒四人之前历经过种种艰难险阻,其心甚坚,是绝不肯为女王留下来的。

国师心里虽然清楚,但又不好直接告诉女王,于是她是这样对女王说的:“陛下,你这样做打算,考虑得不周全。”“噢,此话怎讲?”女王问。

“您只考虑了唐僧的两种反应:接受您的心意,和拒绝您的心意,却没有考虑到其他情况?”国师说。“那难道还有第三种情况?”女王问。

“臣以为有,万一唐长老心中对您有意,但取经也不可不进行,这算是接受还是拒绝呢?又万一唐长老一直沉默,不回答您,既不拒绝,也不接受,这又算什么呢?”国师说。女王问:“嗯,那国师以为如何是好?”女王说。“您可以再设置一种情况,其他类型的反应——容后再议。”

这样,女王心中,就有了三种应对策略。

1 a = input('''唐僧的反应是什么?

2 1.明确接受

3 2.明确拒绝

5 3.其他反应

5 请输入数字 ''')

6 if a == '1':

7    print('成婚')

8 elif a == '2':

9     print('软禁')

10 else:

11     print('容后再议')


再来审视一下elif的使用逻辑:

1 if...(条件1):

2    ...(做点儿什么)

3 elif...(条件2):

4     ...(做点儿其他的)

5 elif...(条件3):

6     ...(做点儿其他的)

7 else(其他):

8     ...(干点儿别的)

if后面跟的是一个条件,当此条件为真时,执行if下面的(做点儿什么)命令,然后结束条件判断;当条件为假时,跳到elif。

elif后面跟的是另一个条件,当此条件为真时,执行elif下面(做点儿其他的)命令,然后结束条件判断;当此条件为假时,跳到第二个elif:

elif后面跟的又是一个条件,当此条件为真时,执行elif下面(做点儿其他的)命令,然后结束条件判断;当此条件为假时,跳到else那里,去执行else下的命令。

流程图如此表示:

上一篇下一篇

猜你喜欢

热点阅读