ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【AI产品经理实战】Day 26|Python 学习记录:位运算收尾 + 三元运算符 + 优先级实战 + 列表字典学完# (小白笔记版)

【AI产品经理实战】Day 26|Python 学习记录:位运算收尾 + 三元运算符 + 优先级实战 + 列表字典学完# (小白笔记版) | 进度条学习第 27 天27/191当前完成度23% |今日速览位运算和三元运算符收尾优先级实战4题全对系统复习列表并开坑字典。一、今日任务完成收获任务原文学完位运算符和三元运算符做运算符优先级实战系统过一遍列表并开坑字典。任务项实际完成状态位运算与三元运算符位运算符、、^、、5 大分类正式集齐优先级实战4道题全对理清(103)*2**2等计算顺序✅ 完成列表复习列表索引、切片、增删改、操作符、函数方法并完成自测小练习⚠️ 部分完成字典基础知识学完结构、访问、增改、删除、键的特性外加内置函数 12 个常用方法还做了字典合并小测试⚠️ 部分完成列表与字典练习 10 题用列表 字典写了一个购物价格小项目能跑通⚠️ 部分完成️【图1今日产出截图 —— 敲的列表代码】二、位运算符第 5 类正式收尾基础计算机只认二进制1 byte字节 8 个 bit位满 2 进 1。bin(3) 可以看数字的二进制长相。运算符名称规则每一位对比示例按位与都为 1 才是 13 5 001 1按位或有 1 就是 1全 0 才是 0^按位异或不同才是 1相同为 03 ^ 5 110 6左移向左移 n 位右边补 0a n 等于 a * 2^n右移向右移 n 位左边补符号位正补 0、负补 1a n 等于 a // 2^n记忆口诀笔记红字版很准 都为 1 1| 都为 0 0^ 不同 1。大白话把两个数字并排看成两串灯泡一位一位地比。 是两个都亮才算亮| 是有一个亮就算亮^ 是俩灯不一样才算亮。⚠️ 移位是乘除 2 的快捷键5 1 10乘 210 1 5整除 2。三、三元运算符 if else作用把简单的 if-else 缩成一行根据条件从两个值里挑一个。Python没有? :写法那是 C/Java 的直接用 if else 关键词。# max a if 条件 else b条件成立取 a不成立取 bmax1aifabelseb# 三数求最大值先比 a、b赢家再和 c 比max2(aifabelseb)if(aifabelseb)celsec四、运算符优先级从高到低() 圆括号 → ** 乘方 → * / % // 乘除 → - 加减 → 位运算 → → ^ → | → 比较运算 !→ not → and → or → 赋值 - %…大白话先算括号再乘方再乘除再加减逻辑里 not 最急、and 次之、or 最后赋值永远是最后一步装回去。4 道练习题全对 ✅(103) * 2 ** 2→ (103)13 → 2²4 → 13*4 5210 3 * 2 ** 2→ 2²4 → 3*412 → 1012 22x5, y10x*2 y and y5 x*3→ 1010False1515False → False and False Falsex10, y5not x y and y x or x 10→ xyTrue → not→False → and 短路得 False → or True True五、列表已学完1. 序列是什么序列是 Python 最基本的数据结构每个值都有对应的位置编号这就是索引第 1 个索引是 0第 2 个是 1依次类推。Python 内置 7 种序列类型列表、元组、字符串、字节串、字节数组、范围最常见的是列表和元组。列表 4 个特性①最常用的数据类型②数据项不需要相同类型③方括号 逗号隔开就能创建④索引从 0 开始可截取、组合。2. 索引访问L[2]取第 3 个正数从 0 数L[-2]取倒数第 2 个负数从 -1 数。3. 切片 [startstep]返回新列表不动原列表start 起始索引包含默认 0end 结束索引不包含默认列表长度step 步长默认 1可为负数从后往前取切片的 4 个好处笔记总结①操作返回新列表原列表不受影响②索引越界自动调整范围不报错③参数灵活可省略用默认值④支持负索引倒数着取。L[Google,Runoob,Taobao]L[2]# TaobaoL[-2]# RunoobL[1:]# [Runoob, Taobao]⚠️ 越界安全只对切片成立L[1:100]自动截断不报错直接索引L[100]会报 IndexError别混。4. 增、删、改lst[]lst.append(Google)# 末尾加单个lst.extend([orange,grape])# 末尾加多个lst.insert(1,blueberry)# 指定位置插入dellst[2]# 按索引删lst.pop()# 删最后一个并返回该值也可传索引lst.remove(grape)# 删第一个匹配的值lst.clear()# 清空记忆append 单个、extend 一串、insert 插队删人三兄弟del 按位置、pop 带回执、remove 按名字。5. 列表操作符[1,2,3] [4,5,6]组合[Hi!] * 4重复3 in [1,2,3]判断成员 → Truefor x in [1,2,3]迭代。6. 常用函数len / max / min / listlen(list)元素个数max(list)最大值min(list)最小值list(seq)把元组转列表。⚠️cmp(list1, list2)是Python 2 的函数Python 3 已经删了别学它比较大小直接用比较运算符。7. 常用方法 9 个append 加、count 数次数、extend 扩一串、index 找位置、insert 插、pop 删返回、remove 删第一个匹配、reverse 反转、sort 排序默认从小到大reverseTrue 降序。8. 自测小练习附答案nums[1,4,5,2,3,8,9,10,6,7]print(nums)# 打印列表print(sum(nums))# 总和 55print(max(nums),min(nums))# 最大 10 最小 1print(sorted(nums))# 升序print(sorted(nums,reverseTrue))# 降序nums.reverse()# 反转六、字典今天学完1. 结构与规矩结构dict {key1: value1, key2: value2}键值对用冒号分隔、对与对之间用逗号、整体包在花括号里。规矩键一般唯一重复时后面的键值对会替换前面的值不需要唯一值可以随便类型键必须不可变字符串、数字、元组。⚠️ 变量名别叫dict——那是 Python 内置类型名变量名不建议占用。比喻列表像带编号的排队队伍字典像带标签的调料架——不看位置报名字直接拿。2. 访问、增改、删除tinydict{Name:Zara,Age:7,Class:First}print(tinydict[Name])# Zara键放进方括号tinydict[Age]8# 更新已有的键tinydict[School]RUNOOB# 键不存在 → 新增deltinydict[Name]# 删单条tinydict.clear()# 清空所有条目deltinydict# 整个字典删掉3. 内置函数4 个能用的函数描述len(dict)计算字典键的总数str(dict)输出字典可打印的字符串表示type(variable)返回变量类型是字典就返回 dictcmp(d1, d2)⚠️ Python 2 的函数Python 3 已移除别学4. 常用方法 12 个clear 清空、copy 浅复制、fromkeys(seq[,value]) 用序列建新字典、get(key, defaultNone)取值键不存在不报错、has_key(key)Python 3 已移除改用key in dict、items() 返回可遍历的(键,值)对、keys() 取所有键、setdefault(key, default)和 get 类似但键不存在时会新增、update(dict2) 把另一个字典的键值对更新进来、values() 取所有值、pop(key[,default])删掉指定键并返回它的值、popitem()返回并删除最后一对键值。⭐ 重点记 3 个get是安全取值d[不存在的键]直接报 KeyErrord.get(不存在的键)只返回 None——想避免报错中断用 get。setdefault vs getget 只取不改setdefault 键不存在时会把键和默认值写进字典。update就是字典合并的工具。5. 小测试合并两个学生字典重复成绩相加dict_student{Alice:90,Bob:85,Charlie:78}dict_student_other{Bob:15,Charlie:92,David:88}mergeddict(dict_student)# 先复制一份不动原字典forname,scoreindict_student_other.items():merged[name]merged.get(name,0)score# 重复的学生成绩相加print(merged)# {Alice: 90, Bob: 100, Charlie: 170, David: 88}这里merged.get(name, 0)的妙处名字没出现过就从 0 开始加出现过就在原成绩上续——get 的 default 参数刚好派上用场。七、综合小项目购物价格单列表 字典合体列表负责排队顺序字典负责贴标签名称→价格两个合起来就能干实事了# 1. 用列表遍历水果带编号打印fruits[苹果,香蕉,橘子]i1forfruitinfruits:print(第str(i)个: fruit)ii1# 2. 用字典管价格改、增、删price{牛奶:5,面包:3,鸡蛋:2}price[鸡蛋]2.5# 改price[橙子]4# 增delprice[牛奶]# 删print(price)# {面包: 3, 鸡蛋: 2.5, 橙子: 4}# 3. 遍历字典打印价格迭代字典默认拿到的是键price2{牛奶:5,面包:3,鸡蛋:2}fornameinprice2:print(name的价格是 str(price2[name]) 元)# 4. 列表套字典一张省钱订单表列表排顺序字典存明细records[{名称:牛奶,原价:6,实际:5},{名称:鸡蛋,原价:3,实际:2.5},]foriteminrecords:saveditem[原价]-item[实际]print(item[名称] 省了 str(saved) 元)小升级学完字典方法后可以换的写法# 迭代字典更优雅的写法items() 同时拿键和值forname,pinprice2.items():print(name,的价格是,p,元)# 拼字符串也可以用 f-string不用到处 str()print(f第1个:{fruits[0]})八、纠错清单昨天笔记的 6 处已改位运算 | 和 ^ 例子写反、print “xxx” 是 Python 2 语法、变量名叫 list 且前后不一致、cmp 已被 Python 3 移除、异域运算→异或运算、三元 print(max) 变量名对不上。今天新笔记的 4 处发布前注意cmp(dict1, dict2) 又出现了字典内置函数表里第一条就是它Python 3 已移除直接删掉。[dict.dear()] 是拼写错误应为dict.clear()清空dear 是亲爱的。print “tinydict[‘Name’]” 还是 Python 2 语法字典访问示例里再次出现Python 3 必须加括号print(tinydict[Name]:, tinydict[Name])。for x in [1,2,3]: print x 同理列表操作符示例里的 print x 也是 Python 2 写法要加括号。✅ 今天笔记里对的地方has_key 你自己红笔标了Python3 不支持完全正确键不可变字符串/数字/元组、重复键后面覆盖前面、pop(key, default) 和 popitem() 的描述都准确。九、可运行练习代码可直接复制# 1. 位运算a,c5,10print(a1,bin(a1))# 10 0b1010左移乘2print(c1,bin(c1))# 5 0b101右移整除2print(35)# 1print(3|5)# 7或有1就是1print(3^5)# 6异或不同才是1# 2. 三元运算符a,b,c100,20,50max1aifabelseb max2cifcmax1elsemax1print(最大值:,max2)# 100# 3. 优先级验证print((103)*2**2)# 52print(103*2**2)# 22# 4. 列表完整操作lst[physics,chemistry,1997,2000]print(lst[0])# physicsprint(lst[-2])# 1997print(lst[1:3])# [chemistry, 1997]lst.append(Google)lst.extend([orange,grape])lst.insert(1,blueberry)print(lst)dellst[2]print(lst)print(len(lst),max([1,4,5,2,3]),min([1,4,5,2,3]))# 5. 字典基本操作tinydict{Name:Zara,Age:7,Class:First}print(tinydict[Name])# Zaraprint(tinydict.get(Phone))# None键不存在也不报错tinydict[Age]8# 更新tinydict[School]RUNOOB# 新增print(tinydict)print(len(tinydict),tinydict.keys(),tinydict.values())# 6. 字典方法pop / popitem / update / setdefaultd{x:1,y:2,z:3}print(d.pop(x))# 1删掉并返回print(d.setdefault(w,0))# 0不存在则新增d.update({y:99})# 更新print(d,d.popitem())# popitem 弹出最后一对# 7. 字典合并小测试重复成绩相加dict_student{Alice:90,Bob:85,Charlie:78}dict_student_other{Bob:15,Charlie:92,David:88}mergeddict(dict_student)forname,scoreindict_student_other.items():merged[name]merged.get(name,0)scoreprint(merged)# {Alice: 90, Bob: 100, Charlie: 170, David: 88}# 8. 购物小项目列表 字典合体records[{名称:牛奶,原价:6,实际:5},{名称:鸡蛋,原价:3,实际:2.5},]foriteminrecords:saveditem[原价]-item[实际]print(item[名称] 省了 str(saved) 元)四、小结和下一步计划小结两天一句话位运算按位比 全 1、| 有 1、^ 不同三元一行挑一个优先级括号最大列表排队编号拿字典贴标签按名取——列表套字典就能记账省钱。下一步不急着看懂更深的代码先补编程思维怎么把问题拆成步骤、Markdown 语法就是你现在写博客用的这套排版语言和技能名称把工具叫对名字地基打牢再往上盖。 3 行速记做了位运算收官优先级实战列表字典学完10 题练习 购物小项目。学会位运算口诀切片越界不报错三元运算符列表套字典记账。记住get(key, 0) 防 KeyError字典键必须不可变0/空值算假。我是卿卿一个正在自学 AI 知识的小白一个转行学 AI 的小白。这是「AI产品经理191天通关计划」的 Day 26目标很简单每天留下一份能回头看懂的笔记。
返回列表