欢迎回来!请和我一起全屏吧~windows:请按F11(或Fn+F11);mac:请同时按control+command+F。 在上一关,小象君带你完成了奶茶馆自助结算系统的计算功能,你已经可以使用Python为顾客计算消费金额了。 期间我们攻克了与Python沟通的语言大关:字符串、整数和浮点数。 但是,对于学习Python来讲,光掌握正确的沟通语言还不够,还需要正确的沟通逻辑,这样才能让Python准确地执行你的命令。 也就是:在什么情况下,做什么,或者说,如果满足什么样的条件,就做什么。 比如在小象奶茶馆自助结算系统中,我们售卖1-5五种编号的奶茶,之后的服务和计算也基于这5种奶茶;如果奶茶编号被赋值为除了这5个编号之外的数字,那之后的服务也就无意义了。 所以,这个逻辑就是: 类似这样“如果…就…”的逻辑,就是与计算机沟通的逻辑:条件判断,它的作用是明确地让计算机知道:在什么条件下,该去做什么。 今天我们的目标就是优化自助结算系统,让它更加完善、智能。 我们将实现: 我们从条件判断语句开始。 条件判断条件判断语句总共有三种表现形式,我们先从最简单的单向判断 单向判断:if
用代码来“翻译”上面的逻辑,我们可以用条件判断语句中的单项判断 关 3-1 if初探 1 2 3 4 5 6 7 8 if_vip = 'y' # 定义if_vip变量,记录顾客是否为会员,'y':yes的缩写,表示是会员 if if_vip == 'y': #条件:如果顾客是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果 终端 W 运行成功 这段代码是如何实现的呢? 第一步,我们用赋值运算符 第二步,确定if条件。
如何判断 如果 小象君考你一下, A 满足 B 不满足 回答错误,你选择的是A,正确答案是【B】。 双等号 第三步,用 所以,if语句的单向判断逻辑,我们可以这样归纳: 在这里,你可能注意到了一个细节:第二行内容的前面,会空几个格,这是为什么呢? 首先,在计算机的沟通语言中,空格的学名叫缩进,类似于我们写文章每个段落前的空格(首行缩进)。 对于Python而言,缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。 并且,在 此时,被缩进的内容 这意味着:如果 通俗点讲,我们可以把 那么下面,请你运行这段代码,看看运行结果是什么。(请不要更改代码,直接点击运行键,当终端出现红色报错提醒后,点击跳过本题) 关3-1 if缩进错误 1 2 3 4 5 6 7 if_vip = 'y' # 定义if_vip变量,记录顾客是否为会员,'y':yes的缩写,表示是会员 if if_vip == 'y': #条件:如果顾客是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果 终端 W 运行失败 喔呦,是不是报错了?这里的报错表示的意思是: 这是因为,当我们去掉缩进时, 所以,我们总结一下单向判断:if的代码逻辑及语法格式: 在刚刚的判断语句中, 比如我们给 if_vip = 'y' # 定义if_vip变量,记录顾客是否为会员,'y':yes的缩写,表示是会员if if_vip == 'y': #条件:如果顾客是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果 请注意:1.符号要在英文输入法下输入;2.检查条件判断语句下是否缩进;3.只要显示运行通过,就请点击回车键继续课程。 关 3-1 if练习 1 print 终端 W 运行成功 这时,你可能会在心里犯嘀咕:纳尼?别提结果,为什么连个报错都没有呢? 别急,在这个操作下,终端里不显示结果就是正常的。小象君来解释一下这是怎么回事儿。 小象君曾说过,计算机是一行行往下执行代码的。所以,当变量的赋值不满足 但是,在上面的代码中,除了 也就是说,由于 很多时候,我们不能把鸡蛋放在同一个篮子里,要做好两手准备:如果不满足条件时,我们要怎么办。 作为一枚人性化的自助结算系统,如果顾客不是vip用户时,我们希望输出一句话提醒一下顾客,在Python中要如何实现呢? 双向判断:if…else…我们可以利用 下面,请你直接运行下面的代码,看看Python是如何识别的: 关 3-1 if-else初探 1 2 3 4 5 6 7 8 9 if_vip = 'n' # 定义if_vip变量,记录顾客是否为会员,'n':no的缩写,表示不是会员 if if_vip == 'y': #条件:如果顾客是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果 else: #条件:当赋值不满足if条件时,执行else下的命令 print('不好意思哦,您目前还不是我们的会员,\n本次无法享受会员价喽,永远爱你么么哒!') 终端 W 运行成功 Python则很贴心地,让我们使用 还记得我们在讲单向判断
当 我们用流程图来表示一下上面代码的逻辑: 由于赋值 只能走第二条 所以, 最后,我们来总结一下 在刚刚的判断条件中,如果我们给 那么,如果 这三个如果在Python中要如何实现呢? 多向判断:if…elif…else…首先,我们需要先来梳理一下逻辑。 代码中需要添加三个如果:如果 那么,在判断3个或3个以上的条件时,我们就需要借助Python中的多向判断命令: 这三者共同构成了多向判断的命令逻辑关系:如果 并且,当判断的条件超过3个时,中间的多个条件都可以使用 那么,这个代码要怎么写呢?我们还是在代码中来感受一下elif的逻辑,直接点击运行就好: 关 3-1 体验if-elif-else 1 2 3 4 5 6 7 8 9 10 if_vip = 'n' # 定义if_vip变量,记录顾客是否为会员,'n':no的缩写,表示不是会员 if if_vip == 'y': #条件:如果顾客输入正确,是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果 elif if_vip == 'n': #条件:如果顾客输入正确,不是会员 print('不好意思哦,您目前还不是我们的会员,\n本次无法享受会员价喽,永远爱你么么哒!') 终端 W 运行成功 通过上面 在上面的代码里,Python会对 很显然,第二个条件 下面,请你练习一下,试着不要看刚才的代码,参考下面的提示,自己来重写一遍,通过修改 提示:
步骤有了,下面,请你来识别会员: 关 3-1 多向判断练习 1 print 终端 W 运行成功 下面来看看小象君的答案: if_vip = 'haha' # 定义if_vip变量,记录顾客是否为会员,这里除了定义为'y'、'n'都是正确的if if_vip == 'y': #条件:如果顾客输入正确,是会员 print('您是本店会员,可以享受会员价') #结果:显示‘您是本店会员,可以享受会员价’的结果elif if_vip == 'n': #条件:如果顾客输入正确,不是会员 print('不好意思哦,您目前还不是我们的会员,\n本次无法享受会员价喽,永远爱你么么哒!')else: #条件:当赋值不满足if条件时,执行else下的命令 print('我还是个小宝宝,您的输入我看不懂,您拿着小票问问小象君吧!') 让我们简单总结一下Python逻辑判断的语法。 上面我们完成了会员和非会员顾客购买时的个性化输出。现在我们来根据奶茶的编号输出奶茶的单价。 小象奶茶馆售卖的奶茶有以下几种,单价也各不相同:
如果顾客购买的奶茶是1号,就输出单价:3元;如果购买2号奶茶,就输出单价:5元;以此类推… 请在下面代码框里用 要点提示:
关 3-1 根据奶茶编号输出奶茶单价-练习 1 print 终端 W 运行成功 来看看小象君的代码: 关 3-1 根据奶茶编号定义奶茶单价-答案 1 2 3 4 5 6 7 8 9 milktea_num = 2 if milktea_num == 1: price = 3 print(price) elif milktea_num == 2: price = 5 print(price) elif milktea_num == 3: 终端 W 运行成功 刚才你用 追求效率(懒)的小象君又上线了,有没有发现,2号和3号奶茶单价相同,4号和5号奶单价也相同。有没有办法让这两组奶茶合在一起定价少写几行代码呢? 条条大路通罗马,我们可以这样优化: 关 3-1 根据奶茶编号定义奶茶单价-优化 1 2 3 4 5 6 7 8 9 milktea_num = 2 if milktea_num == 1: price = 3 print(price) elif milktea_num == 2 or milktea_num == 3: price = 5 print(price) elif milktea_num == 4 or milktea_num == 5: 终端 W 运行成功 这里冒出一个新的用法: 上面的代码运行过程是这样的:奶茶编号定义为 类似的用法还有 不同的是,用 小象君写了三组判断语句,请你点击运行,探究一下 关 3-1 and、or和not用法初探 1 2 3 4 5 6 7 8 9 a = 3 # and的用法 if a >= 1 and a <= 2: # 数字a大于等于1且小于等于2 print('小可爱a满足条件^_^') else: print('哦呜,小可爱a不满足条件o(╥﹏╥)o') # or的用法 if a >= 1 or a <= 2: 终端 W 运行成功 总结一下,
回到奶茶馆来,刚刚我们用一段代码预设了不同奶茶编号对应的单价。 milktea_num = 2if milktea_num == 1: price = 3 print(price)elif milktea_num == 2 or milktea_num == 3: price = 5 print(price)elif milktea_num == 4 or milktea_num == 5: price = 7 print(price)else: print('奶茶编号输入错误') 当编号为1、2、3、4、5时分别对应不同的单价,如果编号不是这5个数字中的其中一个,就会返回:奶茶编号输入错误。 小象君曾说过,Python执行代码是自上而下一行一行执行的。如果 那么,我们可不可以先保证奶茶编号满足要求之后再操作呢?当奶茶编号不满足要求时,直接输出提示信息并结束点单,也可以使代码效率更高。 我们将会完成这样的逻辑:
像这种如果底下还有如果、条件里还套着条件的情况,我们要如何用Python写出来,并得出相应奶茶编号的单价呢? 答案就是,我们需要用到嵌套: if嵌套if嵌套的应用场景,简单来讲就是:在基础条件满足的情况下,再在基础条件里面增加额外的条件判断。 就像上面的基础条件是: 如果奶茶编号为1、2、3、4、5中的一个。满足条件时,再根据奶茶编号做判断,从而给奶茶单价变量赋值。 看起来有点复杂,别担心,跟着小象君,我们一层一层来搞定。 第一步就是:搞定最外层的结构,将最基础的代码和条件写出来。 那么,我们的思考逻辑应该是这样:
一起动起来,请你根据上面的提示自己写一遍代码,并点击运行。看看在奶茶编号赋值为 关 3-3 if嵌套第一步-练习 1 import pprint; pprint.pprint() 终端 W 运行失败 运行通过了吗?正确的话,你应该会看到终端显示 milktea_num = 5if milktea_num <= 5 and milktea_num >= 1: print('奶茶编号输入正确')else: print('Woops!我们只售卖以上五种奶茶哦!新口味敬请期待!')print('点单程序结束') 第二步,在最外层的框架里装东西。也就是在条件 其中,
下面,请你先看一眼正确的代码,并注意小象君如何安排额外的条件。 milktea_num = 5if milktea_num <= 5 and milktea_num >= 1: print('奶茶编号输入正确') if milktea_num == 1: price = 3 print('奶茶单价为:{}'.format(price)) elif milktea_num == 2 or milktea_num == 3: price = 5 print('奶茶单价为:{}'.format(price)) else: price = 7 print('奶茶单价为:{}'.format(price))else: print('Woops!我们只售卖以上五种奶茶哦!新口味敬请期待!')print('点单程序结束') 到你了,请同步把上面那段代码写一遍,如果能够做到不看上面的答案,独立写出来是最好的。要点提示:请注意额外条件的缩进格式。 关 3-3 if嵌套第二步-练习 1 print 终端 W 运行失败 怎么样,顺利码出来了吗?如果你能成功运行出 我们再来看看这段代码的运行逻辑。 首先,我们先从整体总览一下。 这段代码总共分为四部分(分别是 并且,在 那么,这种嵌套命令我们要如何理解呢?这就需要你回想一下,小象君曾教给你的4个知识点:1.缩进;2.冒号 首先,我们曾学过,缩进相同的平级命令都是老大,都是有头有脸的人物,谁都不能怠慢。所以,第一步,计算机就要按顺序一条一条地跟老大们“打招呼”(按顺序执行命令)。 那么,计算机执行的顺序就是:
如果满足 经过判断,我们知道了,奶茶编号要找 所以我们的运行顺序是,先输出 好了,本关的知识点就到此为止了,小象君带你回顾一下今天学习到的内容。 本关内容回顾今天我们学习了条件判断语句。条件判断语句总共有三种表现形式,单向判断 单向判断 双向判断 多向判断 除此之外,如果底下还有如果、条件里还套着条件,就需要使用if嵌套。 这就是我们今天学习的主要内容,接下来又到你闪亮登场的时候了! 小象奶茶馆_店铺升级今天我们的目标是实现以下点单过程: ① 奶茶编号 奶茶馆的欢迎标语与结语打印代码,小象君又帮你写在这里了,你可以直接复制使用。 print('****************************************')print('欢迎光临小象奶茶馆!\n小象奶茶馆售卖宇宙无敌奶茶!\n奶茶虽好,可不要贪杯哦!\n每次限尝鲜一种口味:\n1. 原味冰奶茶 3元 \n2. 香蕉冰奶茶 5元 \n3. 草莓冰奶茶 5元 \n4. 蒟蒻冰奶茶 7元 \n5. 珍珠冰奶茶 7元 ')print('****************************************')print('****************************************')print('做一枚有态度、有思想的奶茶馆(傲娇脸)!\n\t祝您今日购物愉快!\n\t\t诚挚欢迎您再次光临!')print('****************************************') 关 3-5 小象奶茶馆V_3版本-练习 1 print 终端 W 运行成功 来看一下小象君的代码和你的一样吗? print('****************************************')print('欢迎光临小象奶茶馆!\n小象奶茶馆售卖宇宙无敌奶茶!\n奶茶虽好,可不要贪杯哦!\n每次限尝鲜一种口味:\n1. 原味冰奶茶 3元 \n2. 香蕉冰奶茶 5元 \n3. 草莓冰奶茶 5元 \n4. 蒟蒻冰奶茶 7元 \n5. 珍珠冰奶茶 7元 ')print('****************************************')milktea_num = 4milktea_quantity = 2if_vip = "y"if milktea_num <= 5 and milktea_num >= 1: if milktea_num == 1: price = 3 elif milktea_num == 2 or milktea_num == 3: price = 5 elif milktea_num == 4 or milktea_num == 5: price = 7 money = price * milktea_quantity print('您购买的是{}号奶茶,共购买{}杯,总计{}元'.format(milktea_num, milktea_quantity, money)) if if_vip == 'y': money *= 0.9 print('您可以享受会员价,折后总价:{}元'.format(money)) elif if_vip == 'n': print('不好意思哦,您目前还不是我们的会员,\n本次无法享受会员价喽,永远爱你么么哒!') else: print('我还是个小宝宝,您的输入我看不懂,您拿着小票问问小象君吧!')else: print('Woops!我们只售卖以上五种奶茶哦!新口味敬请期待!')print('****************************************')print('做一枚有态度、有思想的奶茶馆(傲娇脸)!\n\t祝您今日购物愉快!\n\t\t诚挚欢迎您再次光临!')print('****************************************') 在这个版本中我们完成了一个新的迭代,通过预置一些初始信息,让系统更加的自动化、人性化,帮助小象君减少了很多手动的工作,一步一步解放生产力。 本关内容就到此为止了,你掌握了与计算机沟通的逻辑,下一关我们将学习互动沟通。 敲黑板!!!正儿八经的通知: 恭喜你通过本关!下一关即将解锁,别忘了课后练习哦,小象君和你下关再会! 还差最后一步啦: 1、你对本关内容的满意度: 非常满意 满意 一般 不满意 很不满意 2、你是否掌握了本关知识呢,给自己打一个分吧~ 0 1 2 3 4 5 6 7 8 9 10 给自己打分 3、本关内容学会了嘛~如果觉得哪里讲解不好,快来吐槽一下吧~(选填) 提交 |
|
来自: 昵称1pWJU > 《导出后存档111》