Python小课笔记--Python控制流:if逻辑判断

截图来自Python小课

文|仟樱雪
在Python小课-1-2-3节中,我们已经学习了基础模块--数据--数据类型(整数、字符串、浮点数),以及基础模块--变量,基础模块--函数(input函数、print函数,type函数,len函数,str函数,int函数,flost函数)。

本节开始学习控制流中的“条件判断”
截图来自Python小课

条件判断,就是——“让计算机在合适的情况下做合适的事。
计算机是一个超级听话的仆人,坚决服从你的每一行指令。可它不会主动提出要帮你做什么事情,除非你把规则都制定好
Python小课--条件判断的学习,主要是以女儿国国王的烦恼作为案例介绍。

1、烦恼1::如果今晚下雨,那就说明女王和唐三藏合适,可以在一起。
在Python中,实现:

weather = input('请回答:今晚下雨or没下雨')
if weather == '下雨':
    print('女王和唐僧可以在一起。')

运行结果:
本地Python环境运行

说明:输入了下雨的答案之后,会出现如上结果,如果输入了“不下雨”,那程序就什么都不会执行。因为这不满足下一行代码的要求!

==,该符号表示【左右两边的内容相等】;
第1行代码:用input() 函数请用户输入今晚下雨or没下雨,并将结果赋值给weather(英文,天气)。
第2行代码:开始使用if语句,如果变量weather等于下雨。
第3行代码:那就打印--女王和唐僧可以在一起。这是属于if内部的语句,要缩进四个空格。
if语句的逻辑语法:

if ...(条件):
    ...(做点儿什么)
    ...(做点儿什么)
...(if语句的外部命令)

(1)if 后面跟的是一个条件。当条件为真时,就执行内部缩进的命令(做点儿什么),数量不限;如果条件为假,不管,跳过if,去执行if语句的外部命令。
(2)注意了哈!if 的条件后面有一个英文的冒号【:】,很容易被漏掉;(做点儿什么)都属于if内部的命令,所以要缩进4个空格。
(3)当if后面的条件为假时,不会一行一行向下执行了,而是跳过if的内部代码,去执行if语句的外部代码了。

2、烦恼2:今晚有月亮吗?如果有,那就打印:女王和唐僧可以在一起。
在Python中,实现:

weather = input('请回答:今晚有月亮or没有月亮?')
if weather == '有月亮':
    print('我和唐僧可以在一起。')

运行结果:

请回答:今晚有月亮or没有月亮?有月亮
我和唐僧可以在一起。

说明:输入了有月亮的答案之后,会出现如上结果,如果输入了“没有月亮”,那程序就什么都不会执行。

3、烦恼3:如果唐僧接受了表白,很好,马上举行婚礼,全国放假;如果唐僧没有答应的话,把唐僧软禁起来,从长计议,毕竟唐僧所处的行政区域正是女王管辖的领土,大唐的皇帝也管不到这么远。
在Python中,实现:

answer = input('唐僧接受了表白吗?请回答有or没有?')
if answer == '有':
    print('很好,马上举行婚礼,全国放假')
else:
    print('把唐僧软禁起来,从长计议')

运行结果:

唐僧接受了表白吗?请回答有or没有?没有
把唐僧软禁起来,从长计议

说明:输入了"没有"之后,会出现如上结果,如果输入了“有”,则输出“很好,马上举行婚礼,全国放假”。
此处多了一个【else:】这个单词的意思是——否则、其他,还有两个冒号。

if...else...的逻辑语法:

if...(条件):
    ...(做点儿什么)
    ...(做点儿什么)
else:
    ...(干点儿别的)
    ...(干点儿别的)

(1)if 后面跟的是一个条件,当条件为真时,执行 if 下面的(做点儿什么)命令,当条件为假时,跳到else: ,然后开始执行else: 下面的命令。
(2)if 下面的代码要缩进四个空格,代表的是if内部的功能,所以要缩进。else下面的代码同样要缩进四个空格,代表的是else内部的功能。这都是为了方便我们看代码。

(3)尤其要注意的是,if后面的条件后面要跟英文冒号【:】,还有else后面,也要跟英文冒号【:】。
截图来自Python小课
练习1:
请用 if...else... 完成这样一个程序:

0,请用户输入一个整数;
1,然后如果这个整数大于10,就打印(整数-20)的结果;
2,否则,就打印(整数+20)的结果
Python操作:

a = int(input('请输入一个整数:'))
if a > 10:
    print(a-20)
else:
    print(a+20)
#第1行代码:使用int()函数是为了让字符串转换为整数,这样才能进行a-20和a+20的计算。
#第2、3行代码:如果这个整数大于10,就打印(a-20)的结果;否则,就跳到第四行代码。
#第4、5行代码:当这个整数不满足大于10的条件时,打印(a+20)的结果。

4、烦恼4:女王跟唐僧表白心迹之后,根据唐僧的反应情况,出具三种措施:
唐僧,明确接受,则成婚;明确拒绝,则软禁;其他反应,容后再议。
在Python中,实现:

a = input('''
唐僧的反应是什么?
1.明确接受
2.明确拒绝
3.其他反应
请输入数字>
''')
if a == '1':
    print('成婚')
elif a == '2':
    print('软禁')
else:
    print('容后再议')

运行结果:

唐僧的反应是什么?
1.明确接受
2.明确拒绝
3.其他反应
请输入数字>
3
容后再议

说明:输入了3之后,会出现如上结果,如果输入了“2”,则输出“软禁”’,输入1,则输出“成婚”。
又多了一个【elif】,【elif】其实是else if 的缩写,代表否则如果。
第1-7行代码,都是在获取数据,即唐僧的选择到底是哪个。三引号可以帮助字符串实现换行。
第8、9行代码:如果变量 a 和 '1' 相等,即唐僧明确接受,那么就显示--成婚。
第10、11行代码:如果变量 a 和 '2' 相等,即唐僧明确拒绝,那么就显示--软禁。
第12、13行代码:如果上面两种都不是,即唐僧有其他反应,那么就显示--容后再议。
这里有3种情况,所以使用了一次elif,如果有四种情况,可以使用两次,这视代码的实际情况而定。

elif的使用逻辑:

if...(条件1):
    ...(做点儿什么)
elif...(条件2):
    ...(做点儿其他的)
elif...(条件3):
    ...(做点儿其他的)
else(其他):
    ...(干点儿别的)

(1)if后面跟的是一个条件,当此条件为真时,执行if下面的(做点儿什么)命令,然后结束条件判断;当条件为假时,跳到elif。
(2)elif后面跟的是另一个条件,当此条件为真时,执行elif下面(做点儿其他的)命令,然后结束条件判断;当此条件为假时,跳到第二个elif:
(3)elif后面跟的又是一个条件,当此条件为真时,执行elif下面(做点儿其他的)命令,然后结束条件判断;当此条件为假时,跳到else那里,去执行else下的命令。
******************警示:if的条件后面有冒号,elif的条件后面有冒号,else后面也有冒号。同样的,if内部语句、elif内部语句,和else内部语句都是要缩进四个空格*************************************************

练习题1:
熊猫博物馆的门票有三种,当游客的年龄小于 6 岁时,收5元;当游客的年龄大于等于6岁,而小于60岁时,收20元;当游客的年龄大于等于60岁时,不收费。请你写出一个程序,当游客输入自己的年龄后,可以打印出这位游客该收多少钱的门票。
Python实现:

a = int(input('请输入你的年龄:'))
if a < 6:
    print('收5元')
elif a < 60:
    print('收20元')
else:
    print('不收费')

说明:不同年龄段收不同的门票,其实是并列的三种情况,所以是比较适合使用if...elif...else的。
第1行代码:是为了获取游客的年龄信息,并把字符串的数据类型转换为整数。
第2、3行代码:小于6岁的游客,属于游客中的第一区间,收费5元。如果是大于等于6岁的游客,跳到elif。
第4、5行代码:在大于等于6岁的游客中,如果小于60岁,那么属于第二区间,收费20元。在大于等于6岁的游客中,如果不满足elif后面的条件,即大于等于60岁,跳到else。
第6、7行代码:大于等于60岁的,属于游客中的第三区间,不收费。

5、课后练习
(1)【背景】
最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡。
海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏。
游戏规则如下:
如果派大星一天吃超过40个蟹黄堡,就要给海绵宝宝100块;
如果派大星一天吃小于等于40个的蟹黄堡,海绵宝宝就给派大星100块。
【题目】
请你写出一段代码:
当输入派大星一天吃的蟹黄堡数量时,可以打印出这天该派大星给海绵宝宝钱,还是海绵宝宝给派大星钱。
Python操作:

num=int(input('请问:您一天吃的蟹黄堡的数量:'))
if num >40:
    print('给海绵宝宝100元')
else:
    print('海绵宝宝需给您100元')

(2)【背景】
我知道,在许多时候,恋人是由朋友发展而成的。而这个过程,可以用代码来做演示。
不信?听我讲。
首先判断:两人的关系是不是达到了【朋友之上,恋人未满】?
如果不是,那么输出:进度条还不够,再等等。程序终结。
如果是,那么再判断:你是不是想和对方有进一步的发展?
如果不是,那么输出:还是做朋友吧。程序终结。
如果是,那么再判断:对方是不是想有进一步的发展?
如果不是,那么输出:恭喜获得“好人卡”。
如果是,那么输出:恭喜你们,有情人终成眷属!
Python实现:

#在许多时候,恋人是由朋友发展而成的,下面让我们来做个恋爱告白测试:
num1 = input('请问:你们的关系目前是进入暧昧阶段了吗?请回答:是or不是 ')
if num1 == '不是':
        print('革命尚未成功,同志仍需努力啊!')
elif num1 == '是':
        num2 = input('感情刚好,你希望你们的关系更进一步吗?请回答:是or不是 ')
        if num2 == '不是':
            print('那就点到即止吧,朋友一生一起走~')
        elif num2 == '是':
            num3 = input('那TA呢,想再进一步吗?请回答:想or不想? ')
            if num3 == '不想':
                print('恭喜你,获得千年单身卡,好人一生平安!')
            else:
                print('恭喜!有情人终成眷属,命中注定在一起!')

(3)BMI指数是一个国际上常用的衡量人体胖瘦程度,以及是否健康的指数。
它的计算方式如下:
BMI = 体重 ÷(身高×身高)

比如一个体重50kg,身高160cm的人,BMI = 50 ÷(1.6*1.6)=19.5

对照BMI的表格:
截图来自Python小课
Python语句实现:
weight = float(input('请输入您的体重(单位:kg):  '))
high = float(input('请输入您的身高(单位:cm):  '))
BMI = weight / ((high / 100) * (high / 100))
if BMI < 18.5:
    print('过轻')
elif BMI < 24.0:
    print('正常')
elif BMI < 28:
    print('过重')
else:
    print('肥胖')

小结:
1、if的条件后面有冒号,elif的条件后面有冒号,else后面也有冒号;
2、if内部语句、elif内部语句,和else内部语句都是要缩进四个空格;
3、括号、冒号、单引号切记是英文状态下的输入;
4、相关数据类型的转换嵌套设置。

(注:2018.10.14,Python编程,捡破烂儿的笨小孩学习小记,有用就给个小心心哟,后续持续更新ing)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容