美文网首页工具癖python学习
Python小课笔记--Python控制流:逻辑判断

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

作者: 仟樱雪 | 来源:发表于2018-11-17 08:39 被阅读12次
    截图来自Python小课

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

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

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

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

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

    运行结果:

    请回答:今晚下雨or没下雨下雨
    女王和唐僧可以在一起。
    

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

    ==,该符号表示【左右两边的内容相等】;
    第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)

    相关文章

      网友评论

        本文标题:Python小课笔记--Python控制流:逻辑判断

        本文链接:https://www.haomeiwen.com/subject/ibejfqtx.html