在哪些网站可以做企业名称预审wordpress多重搜索
2026/2/6 8:30:35 网站建设 项目流程
在哪些网站可以做企业名称预审,wordpress多重搜索,购物网站的建设背景,网站开发 有哪些优化功能CS 41 课程八#xff1a;标准库#xff08;5月23日#xff09; 一、课程基本信息 日期#xff1a;2023年5月23日 主题#xff1a;Standard Libraries#xff08;标准库#xff09; 期末项目提醒 截止日期#xff1a;14天后建议#xff1a;接下来几周随时可以与我们会面…CS 41 课程八标准库5月23日一、课程基本信息日期2023年5月23日主题Standard Libraries标准库期末项目提醒截止日期14天后建议接下来几周随时可以与我们会面二、课前补充函数式编程续Lambda匿名内联函数1. Lambda语法基本格式lambdaparams:expression2. Lambda vs 普通函数普通函数定义defsquare_add_two(x,y):returnx**2y**2等价的Lambda表达式lambdax,y:x**2y**2语法分解lambdax,y:x**2y**2↑ ↑ 参数 表达式3. 调用Lambda函数直接调用(lambdax,y:x**2y**2)(8,5)# 89说明Lambda定义放在括号内参数放在定义后的括号内立即执行并返回结果Map函数1. Map的作用功能接受一个函数和一个可迭代对象将函数应用到可迭代对象的每个元素2. Map实例numbers[1,2,3,4,5]# 使用map和lambda函数对每个数字求平方squared_numberslist(map(lambdax:x**2,numbers))print(squared_numbers)# [1, 4, 9, 16, 25]工作流程numbers: [1, 2, 3, 4, 5] ↓ ↓ ↓ ↓ ↓ lambda x: x**2: 1² 2² 3² 4² 5² ↓ ↓ ↓ ↓ ↓ result: [1, 4, 9, 16, 25]练习环节Let’s Try Some Out三、标准库概述1. 什么是标准库定义随Python一起提供的包和模块被开发者视为重要/基础的功能只需要import即可访问2. 模块与包的区别模块Module可重用Python代码的最小单元基本上就是一个包含函数和语句的文件我们一直在编写模块包Package模块的逻辑集合例如numpy、random等层级关系包Package └── 模块Module └── 函数/类/变量3. 标准库文档官方文档地址https://docs.python.org/3/library/四、Import导入规范导入方式对比方式1导入整个包importsound sound.effects.echo.echofilter(a,b)方式2导入子模块fromsound.effectsimportecho echo.echofilter(a,b)方式3导入特定函数fromsound.effects.echoimportechofilter echofilter(a,b)导入方式选择方式优点缺点适用场景import sound命名空间清晰调用路径长避免命名冲突from sound.effects import echo调用简洁中等命名空间使用多个函数from sound.effects.echo import echofilter最简洁可能命名冲突只用少数函数五、常用标准库详解1. pickle - 对象序列化功能介绍序列化/反序列化Python对象将Python对象转换为二进制表示使用场景1. 高效存储数据importpickle# 保存对象data{name:Alice,scores:[95,87,91]}withopen(data.pkl,wb)asf:pickle.dump(data,f)# 加载对象withopen(data.pkl,rb)asf:loaded_datapickle.load(f)2. 进程间传递信息在不同进程之间传递复杂对象保持对象的完整结构实例演示An example课堂演示⚠️ 安全警告Pickle安全问题不要反序列化不可信来源的数据pickle可以执行任意代码只用于可信来源的数据安全建议# ❌ 危险加载未知来源的pickle文件withopen(untrusted.pkl,rb)asf:datapickle.load(f)# 可能执行恶意代码# ✓ 安全只加载自己创建的文件withopen(my_data.pkl,rb)asf:datapickle.load(f)2. pdb - Python调试器两种使用方式方式1文件内调试importpdbdefbuggy_function(x,y):pdb.set_trace()# 设置断点resultx/yreturnresult方式2终端调试python3-mpdb file.py常用pdb命令命令说明n(next)执行下一行s(step)进入函数c(continue)继续执行l(list)显示代码p variable打印变量b line设置断点q(quit)退出调试3. collections - 特殊容器类型主要数据结构常用容器1. Counter - 计数器fromcollectionsimportCounter words[apple,banana,apple,cherry,banana,apple]counterCounter(words)# Counter({apple: 3, banana: 2, cherry: 1})counter.most_common(2)# [(apple, 3), (banana, 2)]2. defaultdict - 默认字典fromcollectionsimportdefaultdict dddefaultdict(list)dd[fruits].append(apple)# 不需要先初始化dd[fruits].append(banana)# {fruits: [apple, banana]}3. deque - 双端队列fromcollectionsimportdeque dqdeque([1,2,3])dq.appendleft(0)# 左端添加dq.append(4)# 右端添加# deque([0, 1, 2, 3, 4])4. namedtuple - 命名元组fromcollectionsimportnamedtuple Pointnamedtuple(Point,[x,y])pPoint(11,22)print(p.x,p.y)# 11 224. functools - 函数工具主要功能1. lru_cache - 缓存装饰器fromfunctoolsimportlru_cachelru_cache(maxsize128)deffibonacci(n):ifn1:returnnreturnfibonacci(n-1)fibonacci(n-2)2. partial - 部分函数fromfunctoolsimportpartialdefpower(base,exponent):returnbase**exponent squarepartial(power,exponent2)cubepartial(power,exponent3)square(5)# 25cube(5)# 1253. reduce - 归约函数fromfunctoolsimportreducenumbers[1,2,3,4,5]productreduce(lambdax,y:x*y,numbers)# 120 (1 * 2 * 3 * 4 * 5)5. itertools - 迭代器工具常用函数1. count - 无限计数fromitertoolsimportcount countercount(start10,step2)# 10, 12, 14, 16, 18, ...2. cycle - 循环迭代fromitertoolsimportcycle colorscycle([red,green,blue])# red, green, blue, red, green, blue, ...3. chain - 链接迭代器fromitertoolsimportchainlist(chain([1,2],[3,4],[5,6]))# [1, 2, 3, 4, 5, 6]4. combinations - 组合fromitertoolsimportcombinationslist(combinations(ABC,2))# [(A, B), (A, C), (B, C)]5. permutations - 排列fromitertoolsimportpermutationslist(permutations(ABC,2))# [(A, B), (A, C), (B, A),# (B, C), (C, A), (C, B)]6. re - 正则表达式正则表达式基础电话号码匹配示例importre patternr\(\d{3}\)[- ]\d{3}-\d{4}phone(123) 456-7890ifre.match(pattern,phone):print(Valid phone number)模式解释\(\d{3}\) [- ] \d{3} - \d{4} ↓ ↓ ↓ ↓ ↓ (123) 空格或- 456 - 7890常用正则操作1. 搜索匹配importre textEmail: userexample.commatchre.search(r[\w\.-][\w\.-],text)ifmatch:print(match.group())# userexample.com2. 查找所有匹配textNumbers: 42, 123, 7numbersre.findall(r\d,text)# [42, 123, 7]3. 替换textHello Worldnew_textre.sub(rWorld,Python,text)# Hello Python4. 分割textapple,banana;cherry:datefruitsre.split(r[,;:],text)# [apple, banana, cherry, date]六、非标准库包1. 需要单独安装的包说明不在标准库中的包必须通过pip等工具下载提供更专业的功能2. 流行的第三方包常见包介绍包名用途特点FlaskWeb框架轻量级、灵活NumPy数值计算多维数组、科学计算Pandas数据分析DataFrame、数据处理RequestsHTTP请求简单易用的网络库安装方式pipinstallflask pipinstallnumpy pipinstallpandas pipinstallrequests3. 文档资源每个包都有自己的文档Flask: https://flask.palletsprojects.com/NumPy: https://numpy.org/doc/Pandas: https://pandas.pydata.org/docs/Requests: https://requests.readthedocs.io/七、⚠️ pip安全警告真实案例2018年恶意包事件事件经过恶意包上传名为acqusition的包被上传到PyPI模仿知名包模仿知名包acquisition拼写相似恶意代码包含收集用户SSH和GPG密钥的代码远程传输将密钥发送到远程服务器事后处理包被移除但警示了安全重要性安全建议安装前检查# ❌ 危险拼写错误可能安装恶意包pipinstallrequets# 注意拼写错误# ✓ 正确仔细检查包名pipinstallrequests最佳实践仔细检查包名注意拼写验证包来源查看官方文档检查下载量流行包通常有大量下载查看维护情况检查最后更新时间阅读文档了解包的功能查看GitHub查看源代码和issue安全检查清单□ 包名拼写正确 □ 来自官方源PyPI □ 有官方文档 □ 下载量合理 □ 近期有维护 □ 社区活跃八、课程总结Lambda与Map速查Lambda语法lambda参数:表达式# 示例squarelambdax:x**2addlambdax,y:xyMap用法map(函数,可迭代对象)# 示例list(map(lambdax:x**2,[1,2,3]))# [1, 4, 9]标准库分类速查数据结构collections: Counter, defaultdict, deque, namedtuple函数工具functools: lru_cache, partial, reduce迭代工具itertools: count, cycle, chain, combinations, permutations文本处理re: 正则表达式调试工具pdb: Python调试器序列化pickle: 对象序列化常用标准库导入模板# 数据处理fromcollectionsimportCounter,defaultdict,dequefromfunctoolsimportlru_cache,partialfromitertoolsimportchain,combinations# 文本处理importre# 调试importpdb# 序列化importpickle关键要点标准库的价值无需安装开箱即用经过充分测试性能优化良好选择合适的工具数据计数 → Counter函数缓存 → lru_cache正则匹配 → re调试 → pdb第三方包提供专业功能需要pip安装注意安全性最佳实践优先使用标准库需要时才安装第三方包仔细验证包的可信度学习资源官方文档Python标准库https://docs.python.org/3/library/PyPIhttps://pypi.org/推荐阅读Python Module of the Week (PyMOTW)Real Python标准库教程各包的官方文档实践建议浏览标准库文档了解有哪些工具可用动手实践在小项目中使用这些库阅读源码理解实现原理关注安全特别是使用pickle和第三方包时

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询