公司动态
暑期Python实战营——7月21日学习笔记
因为参加过翊博老师的量化金融学习得知他开展本次 Python 课程时我十分感兴趣这次也很荣幸能够以领学员的身份参与其中。翊博老师这门 Python 课程会在哔哩哔哩开启每日直播授课直播内容条理清晰、实操性很强不只是单纯讲解理论知识点还会结合大量实战案例带领大家上手敲代码。一、上期学习内容回顾上期课程围绕 Python 容器与条件判断两大核心模块展开学习。我们认识了序列切片逻辑掌握一次性截取片段数据的使用方式学习字典的键值映射结构练习字典增删改查各类常用操作。同时辨析元组、集合和列表的差异理清不同容器的适用场景理解什么时候能用元组、集合替代列表。课程还讲解嵌套容器熟悉容器互相嵌套的写法通过多容器对比实操梳理出容器选择决策思路学会结合需求挑选恰当的数据结构。在分支语法部分我们厘清 if 语句的本质条件成立则执行对应代码理解 if/else 二选一的运行逻辑。二、本次学习内容1、本次讲解的内容今天的讲解内容是第5章条件逻辑的第3节if/elif/else:多分支互斥匹配到第8节字典映射代替多分支。其中主要包括以下内容1.多分支相关的3个重要的点其中包括核心机制顺序匹配命中即停条件顺序很重要——大阈值放前面互斥 vs 顺序互斥用 elif独立用多个 if课堂练习2.比较运算符与链式比较,其中包括六个比较运算符等于不等于大于小于大于等于等于链式比较易错点比较的是值不是身份身份用is浮点数比较要小心0.1 0.2 0.3是False精度问题用abs(a-b) 1e-9字符串比较按字典序a b为 True但大写小于小写A a为 True4.课堂练习3.嵌套 if组合条件与扁平化其中包括何时嵌套条件有层级依赖避免过深——超过 3 层就重构嵌套 vs and 组合两个条件并列无依赖 →and组合更扁平两个条件层级B 只在 A 成立时才有意义→ 嵌套更清晰4.课堂练习4.组合条件and / or / not 与短路,其中包括三个运算符and/or/not短路求值and前为假则不判断后面结果已定or前为真则不判断后面结果已定优先级notandor3.课堂练习5.三元表达式一行搞定简单赋值三元只用于一眼能看懂的赋值。一旦要嵌套两层以上立刻改 if/elif。6.字典映射替代多分支2、本次遇到的问题及改正方法在完成课堂练习时也遇到两处典型低级报错一处把函数名写错定义写成giid_grade调用时却使用good_grade触发 NameError另一处拼写失误将列表方法append输错抛出 AttributeError。排查后发现根源都是敲代码不够细心函数定义名称、调用名称、内置方法名称没有保持一致。这些错误也给我敲响警钟写代码不能只求速度要留意单词拼写、命名前后统一。后续编码过程中我会更加严谨写完简单自查减少这类粗心引发的 bug。三、课后作业作业1# 写函数 is_adult(age)18 岁及以上返回 True否则 False。 def is_adult(age): if age 18: return True else: return False assert is_adult(18) True assert is_adult(22) True assert is_adult(17) False print(ALL Pass!!!)作业2# 成绩分档90 优秀80 良好60 及格否则不及格 def get_level(score): if score 90: return 优秀 elif score 80: return 良好 elif score 60: return 及格 else: return 不及格 assert get_level(90) 优秀 assert get_level(98) 优秀 assert get_level(80) 良好 assert get_level(85) 良好 assert get_level(60) 及格 assert get_level(72) 及格 assert get_level(59) 不及格 assert get_level(33) 不及格 print(ALL Pass!!!)作业3#闰年判断能被4整除且不能被100整除或能被400整除。 def y(year): if (year%4 0 and year%100 !0) or (year %400 0): return True else: return False assert y(2000) True assert y(2026) False print(ALL Pass!!!)作业4#BMI 分级BMI18.5 偏瘦18.5-24 正常24-28 偏胖28 肥胖。BMI体重/身高²。 def bmi(w,h): bmiw/(h**2) if bmi 18.5: return 偏瘦 elif bmi 24: return 正常 elif bmi 28: return 偏胖 else: return 肥胖 assert bmi(55, 1.78) 偏瘦 print(all pass!!!)作业5#用字典映射实现运算符→结果支持 - * 未知运算符返回 None。 ops {:lambda a,b:ab, -: lambda a,b: a-b, *:lambda a,b: a*b} def calc(op, a , b): return OPS.get(op,lambda a,b:None)(a,b) assert calc(and,3,4) 7 assert calc(sub,10,3) 7 assert calc(mul,2,5) 10 assert calc(div,1,1) is None print(All Pass!!!!)作业6#三元表达式判断温度30 返回热否则凉。 def temp(t): return热 if t30 else 凉 assert temp(57) 热 assert temp(20) 凉 print(all pass!!!!!!)作业7#嵌套判断先看是否 VIPVIP 直接 8 折非 VIP 看金额100 打 9 折否则无折扣。返回折后价。 def price(money, is_vip): if is_vip: return money*0.8 elif money100: return money*0.9 else: return money assert price(200, True) 160.0 assert price(200, False) 180.0 assert price(80, False) 80.0 assert price(100, False) 90.0 print(ALL Pass!!!)#出勤判定score60 and absent3通过 #score60 and absent3 通过但补考出勤 #其余不通过。说明为何用 and 组合而非嵌套。 def p(score,absent): if score60 and absent3: return 通过 elif score60 and absent3 : return 通过但补考出勤 else: return 不通过 assert p(90, 1) 通过 assert p(60, 3) 通过但补考出勤 assert p(35, 1) 不通过 assert p(90, 5) 通过但补考出勤 assert p(46, 10) 不通过 print(alll pass!!!!!!)本次作业都在电脑上运行成功各项验证成果也符合预期。四、本次学习感受今天这场直播学习收获特别大收获了很多实用的编程知识也让我更加通透地理解并学会灵活运用 if/elif/else 分支结构。课堂上除了基础的条件判断语法还深入讲解了与、或、非逻辑运算符的使用要点、简洁高效的三元表达式以及非常实用的优化思路 —— 利用字典映射替代繁琐的多分支判断有效减少冗余代码。老师采用边讲解、边实操的授课方式体验感很好理论结合代码实例同步演示各个知识点拆解细致很多容易踩坑的细节都耐心点明理解起来轻松不少。全程跟着直播思路动手敲写代码不断调试修正当自己编写的代码顺利运行、得到预期结果时成就感满满。课后我也完成了本次配套作业所有代码在电脑本地运行全部通过各项验证结果均符合预期。这些分支相关的写法在后续量化代码编写中会经常用到接下来我会课后多加复盘练习巩固今天所学内容尝试在不同场景选用更简洁优雅的写法持续夯实 Python 编程基础。五、课程来源翊博老师这门 Python 量化课程每日在哔哩哔哩直播授课完整规划 25 天代码基础学习 20 天实战项目零基础也能跟上节奏。大家如果想要了解这个课程可以关注翊博老师 B 站账号 yibohere视频链接https://www.bilibili.com/video/BV1SpKH6bE51/?share_sourcecopy_webvd_source19058ca9a8071c4fcc7ab3b8aadcf7d1#Yibo翊博#yibohere#Yibo Python#Datawhale