8天Python从入门到精通【itheima】-35~37
目录
35节-案例练习:猜猜心里数字
1.题目要求
2.博主第一次写的错误示范
猜数字代码错误示范及分析
错误代码
现象
错误原因分析
总结
3.看了视频以后的正确代码编写
36节-判断语句的嵌套
1.嵌套的判断语句的思维导图
2.嵌套的判断语句的格式
3.判断语句的嵌套-嵌套的简单案例-图片展示
4.代码展示小案例-门票免费
5.图片展示-if elif else 的综合嵌套的案例-发礼物
6.代码实战-发礼物 【这个逻辑有点绕,套娃,回头多看几遍】
7.小节总结
37节-判断语句的综合案例-猜数字
1.案例需求
2.Patrick的代码实战
OK了,今天的代码算是写完了,今天可是真的累了,基本上从上午9点,一直到晚上7点,除了吃饭和运动之外,就一直在写博客和代码,中午也就糊弄了一口,晚上不知不觉间就吃了4个花卷,那种饿,是生理性的真饿,什么都扛不住了,因为头脑风暴实在是太辛苦了,以后不能这么拼命了,要不然没有可持续发展,别弄得以后对代码生理性厌恶了!!!!对了,因为饥饿丧失了理智吃了4个花卷,那今天晚上就出去跑4km来against my dinner!
励志一下:
35节-案例练习:猜猜心里数字
1.题目要求
2.博主第一次写的错误示范
# 35节# 错误示范,这是博主第一次尝试写的,但是控制台输出不对,代码存在逻辑上的问题
num=int(input("请输入第一次猜想的数字:"))
again1=int(input("不对,再猜一次:"))
again2=int(input("不对,再猜最后一次:"))if num != 10:print(f"{again1}")
elif num != 10:print(f"{again2}")
print("Sorry,全部猜错啦,我想的是:10")
#控制台输出结果:
# 请输入第一次猜想的数字:1
# 不对,再猜一次:2
# 不对,再猜最后一次:3
# 2
# Sorry,全部猜错啦,我想的是:10
逻辑错误原因:
猜数字代码错误示范及分析
在猜数字练习中,出现控制台意外输出 “2”,与预期答案不符,以下是错误代码及分析。
错误代码
python
num = int(input("请输入第一次猜想的数字:")) again1 = int(input("不对,再猜一次:")) again2 = int(input("不对,再猜最后一次:"))if num != 10:print(f"{again1}") elif num != 10:print(f"{again2}") print("Sorry,全部猜错啦,我想的是:10")
现象
运行代码,依次输入
1
、2
、3
后,控制台输出 “2”,不符合猜数字逻辑。错误原因分析
代码中
if num != 10
和elif num != 10
条件完全相同。当输入num = 1
时,满足第一个if
条件,执行print(f"{again1}")
,而again1
的值为2
,导致输出 “2”。这是典型的逻辑错误,if - elif
结构中各条件应合理区分,而非重复判断同一条件num != 10
。总结
此错误源于条件判断逻辑混乱。编写代码时,务必确保
if - elif
结构中各条件针对不同情况进行判断,避免因条件设置不当导致意外输出,影响程序逻辑的正确性。
3.看了视频以后的正确代码编写
我靠,这tmd是什么东西,不按套路出牌,这个官方的答案也是shit
Patrick自己重写了一遍
我要说一句,这题目和答案对不上号,害我白想了半天,凸(艹皿艹 )。
所以,写这类小练习重点是逻辑要通顺,至于输出什么具体的话这样的内容不重要,重点是代码逻辑不能出错。
# 定义一个数字变量
num = 10# 通过键盘输入获取猜想的数字,通过多次if和elif的组合进行猜想比较
if int(input("请输入第一次猜想的数字:"))==num:print("恭喜,第一次就猜对了,你tmd是天才!")
elif int(input("不对,再猜一次:"))==num:print("第二次就猜对了,你比牛顿还权威!")
elif int(input("不对,再猜最后一次:"))==num:print("第三次猜对了,最后的关头创造了奇迹,铁汁太厉害了!")
else:print("都没猜出来,you are too weak!loser!")
# 控制台输出结果:
# 1.
# 请输入第一次猜想的数字:1
# 不对,再猜一次:2
# 不对,再猜最后一次:3
# 都没猜出来,you are too weak!loser!# 2.
# 请输入第一次猜想的数字:1
# 不对,再猜一次:333
# 不对,再猜最后一次:10
# 第三次猜对了,最后的关头创造了奇迹,铁汁太厉害了!
36节-判断语句的嵌套
1.嵌套的判断语句的思维导图
2.嵌套的判断语句的格式
3.判断语句的嵌套-嵌套的简单案例-图片展示
4.代码展示小案例-门票免费
# 36节
"""演示判断语句的嵌套使用"""if int(input("请告诉我您的身高:"))>120:print("您的身高超出免费的规定,需要缴纳10元。")print("但是,如果您的VIP等级在3级以上,也是可以免费的欧。")if int(input("请告诉我您的VIP等级:"))>3:print("虽然您的身高超过标准了,但是您的VIP等级足够高了,可以免费游玩了。")else:print("很遗憾,您的VIP等级不够,请您补交10元。")
else:print("您的身高在120以下,无需check您的VIP等级,您可以免费进去游玩")# 控制台输出的三种情况:
# 1.
# 请告诉我您的身高:130
# 您的身高超出免费的规定,需要缴纳10元。
# 但是,如果您的VIP等级在3级以上,也是可以免费的欧。
# 请告诉我您的VIP等级:5
# 虽然您的身高超过标准了,但是您的VIP等级足够高了,可以免费游玩了。
# 2.
# 请告诉我您的身高:130
# 您的身高超出免费的规定,需要缴纳10元。
# 但是,如果您的VIP等级在3级以上,也是可以免费的欧。
# 请告诉我您的VIP等级:2
# 很遗憾,您的VIP等级不够,请您补交10元。
# 3.
# 请告诉我您的身高:85
# 您的身高在120以下,无需check您的VIP等级,您可以免费进去游玩
5.图片展示-if elif else 的综合嵌套的案例-发礼物
6.代码实战-发礼物 【这个逻辑有点绕,套娃,回头多看几遍】
# 代码实战-发礼物:
# 1.必须是大于等于18岁小于30岁的成年人
# 2.同时入职时间需满足大于两年,或者级别大于3才可领取
age=80
year=3
level=10
if age>=18:print("您已经成年了,不是小屁孩了!!!")if age<30:print("您的年龄是在18到30岁之间的,年龄首先达标了。")if year>2:print("您的入职时间超过了两年了,年龄也符合,去拿礼物吧")elif level>3:print("年龄够,级别也够,可以领取礼物。")else:print("对不起,虽然您的年龄符合,但是入职时间或个人级别不够,不能拿礼物")else:print("不好意思,您的年龄实在太大了,礼物不发给老年人(我是反串,讽刺现在某些互联网的血汗工厂)。")
else:print("礼物不发给小屁孩!!!!!!!!")# 所以按照题目要求,控制台输出应该有5种情况(要确保每一个if,都有配套的else):
# 1.年龄、入职时间都符合【领】# 您已经成年了,不是小屁孩了!!!
# 您的年龄是在18到30岁之间的,年龄首先达标了。
# 您的入职时间超过了两年了,年龄也符合,去拿礼物吧# 2.年龄符合,但是入职时间不符合【不能领】# 您已经成年了,不是小屁孩了!!!
# 您的年龄是在18到30岁之间的,年龄首先达标了。
# 对不起,虽然您的年龄符合,但是入职时间或个人级别不够,不能拿礼物# 3.年龄、级别都符合【领】# 您已经成年了,不是小屁孩了!!!
# 您的年龄是在18到30岁之间的,年龄首先达标了。
# 年龄够,级别也够,可以领取礼物。# 4.年龄符合,但是级别不符合【不能领】# 您已经成年了,不是小屁孩了!!!
# 您的年龄是在18到30岁之间的,年龄首先达标了。
# 对不起,虽然您的年龄符合,但是入职时间或个人级别不够,不能拿礼物# 5.年龄不符合:过小
# 礼物不发给小屁孩!!!!!!!!【年龄过小】# 6.年龄不符合:过大
# 您已经成年了,不是小屁孩了!!!
# 不好意思,您的年龄实在太大了,礼物不发给老年人(我是反串,讽刺现在某些互联网的血汗工厂)。 【年龄过大】
7.小节总结
1.嵌套判断语句可以用于多条件多层次的逻辑判断
2.嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
嵌套判断语句,一定要注意空格缩进3.Python通过空格缩进来决定层次关系
37节-判断语句的综合案例-猜数字
1.案例需求
2.Patrick的代码实战
# 37节:
# 案例要求:
# 数字随机产生,范围1-10。
# 有3次机会猜测数字,通过3层嵌套判断实现每次猜不中,会提示大了或小了。
# 提示,通过如下代码,可以定义一个变最num,变量内存储随机数字import random num =random.randint(1,10)# 1.构建一个随机的数字变量
import random
num=random.randint(1,10)
print(num)# 2.定义一个变量,并且把键盘输入赋值给变量
guess_num=int(input("请输入你猜测的数字:"))# 3.通过if语句进行数字的猜测和判断
if guess_num==num:print("真tmd牛!!!o( ̄▽ ̄)d!!!第一次就猜对了,赌神再世!!!")
else:if guess_num>num:print("你猜大了!!!再试一试!!!没关系,重新来!!!")else:print("你猜小了!!!再试一试!!!没关系,重新来!!!")guess_num = int(input("再次输入你猜测的数字:")) #重新输入,因为要猜三次if guess_num==num:print("厉害,第二次就猜对了!!!!!")else:if guess_num > num:print("你猜大了!!!再试一试!!!没关系,重新来!!!")else:print("你猜小了!!!再试一试!!!没关系,重新来!!!")guess_num = int(input("第三次输入你猜测的数字:")) # 重新输入,因为要猜三次if guess_num == num:print("第三次猜对了!!!!!")else:print("三次机会用完了。你没有猜中。你输了。")
# 控制台输出:
# 10
# 请输入你猜测的数字:1
# 你猜小了!!!再试一试!!!没关系,重新来!!!
# 再次输入你猜测的数字:9
# 你猜小了!!!再试一试!!!没关系,重新来!!!
# 第三次输入你猜测的数字:10
# 第三次猜对了!!!!!
OK了,今天的代码算是写完了,今天可是真的累了,基本上从上午9点,一直到晚上7点,除了吃饭和运动之外,就一直在写博客和代码,中午也就糊弄了一口,晚上不知不觉间就吃了4个花卷,那种饿,是生理性的真饿,什么都扛不住了,因为头脑风暴实在是太辛苦了,以后不能这么拼命了,要不然没有可持续发展,别弄得以后对代码生理性厌恶了!!!!对了,因为饥饿丧失了理智吃了4个花卷,那今天晚上就出去跑4km来against my dinner!
励志一下:
(一拳砸在桌子上,震得水杯晃荡)听着,你这拼命三郎!代码是你的战场,可别他妈把身体当炮灰!老子在地狱周里扛着 400 磅跑的时候,也知道歇口气再冲 —— 你以为铁打的身体是天生的?错!是他妈边操练就边修复的!
(揪住衣领,眼神如刀)看看你那代码里的嵌套逻辑,跟老子在沙漠里拆弹一样,得他妈冷静!现在你饿到吃 4 个花卷?那是身体在喊 “老子还要陪你干十年!”,不是让你透支到崩!听着:每天跑 4 公里是对的,但别把编码搞成生死时速 —— 你以为代码是敌人?不,是你征服世界的武器!
(突然松开,甩甩手)记住,硬汉不是死撑,是在痛苦里找节奏!今天累了就睡,明天起来再干 —— 但每次敲键盘都他妈给我像在地狱周最后一圈那样,把每个 bug 当敌人碾碎!现在,滚去跑步,把晚饭的热量烧成斗志,明天回来继续在代码里撕杀!(怒吼)别让身体先垮,老子还等着看你用代码干翻整个互联网!
(接着咆哮,唾沫星子飞溅)你以为代码写到凌晨是光荣?错!那是他妈战术失误!老子在极限训练里,每 90 分钟就要强制补水补盐 —— 你以为身体是铁打的?不,是他妈需要持续维护的精密武器!现在,给我停下键盘,去厨房煮碗燕麦粥,把昨晚的花卷债还了!编程是脑力战,更是持久战,你他妈现在透支身体,就像在沙漠里把水壶摔碎 —— 早晚渴死在胜利前夜!
(突然用拳头猛砸白板,代码逻辑图震得发抖)看看你写的嵌套判断!每一层 if-else 都是对意志力的考验,但前提是你他妈得有清醒的头脑!老子当年在酷热中行军,每走一步都在计算体能消耗 —— 你现在编程也得算:写 3 小时,必须休息 20 分钟,拉伸、喝水、吃坚果!身体垮了,代码里的 bug 会像丧尸一样涌来,把你啃得骨头都不剩!
(抓起运动背包甩到肩上,吼道)现在!立刻!去跑 6 公里!把 “生理性厌恶” 的破情绪甩在跑道上!等你回来,再用清醒的头脑重构代码逻辑 —— 就像老子在敌后用破地图规划突围路线,每一步都他妈精准!记住,硬汉不是蛮干,是在痛苦中找规律:身体恢复了,代码才能写出刀锋般的效率!今晚跑不完 6 公里,明天别他妈碰键盘!(冲出房间,脚步声如重锤砸地,震得代码文件簌簌发抖)
(远处传来回荡的怒吼)明天太阳升起时,老子要看到你在代码里冲锋,身体里燃烧着斗志,而不是他妈拖着残躯的怂样!编程和战斗一样,先练身体,再练脑子 —— 这是老子给你的最后通牒,执行不力,就他妈滚出硬汉的战场!(声音渐远,只剩键盘在黑暗中闪烁,像等待黎明的烽火)
(突然又折返,踹开虚掩的门)还有!下次写代码前,先做 100 个俯卧撑!把血液里的懒惰挤出去,让清醒的神经接管键盘!现在,滚去跑步!(门再次轰然关闭,世界只剩呼吸声和代码的微光,像硬汉在黑暗中坚守的阵地)