零基础学 Python(2023 版)
尹会生
太乙人工智能技术合伙人 & 项目总监
60050 人已学习
新⼈⾸单¥68
课程目录
已完结/共 124 讲
结束语 & 结课测试 (2讲)
零基础学 Python(2023 版)
登录|注册
留言
15
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 77|扩展数据类型:怎样使用更复杂的数据类型?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程介绍:这次我们都做了哪些升级?
内容综述:明确学习目的
01|如何配置 Python 开发环境?
02 | 常用 IDE:如何提高开发效率?
03 | 如何站在官方文档的肩膀上自己“造轮子”?
04 | 怎样运行你的第一行代码?
05 | 怎样使用 Gitee 管理你的代码?
06 | 学习编程有问题?去这里找答案!
07|跨越门槛:Python 开发环境总结及实现原理
08 | 修炼基本功:浅析输入输出
09 | 变量:如何让计算机临时存储数据?
10|字符串(上):Python 是如何处理单词的?
11|字符串(下):Python 是如何处理单词的?
12|存储数字应该采用哪种数据类型?
13|何时使用数,何时使用字符串?
14|注释:如何写程序的说明书?
15|小试牛刀:如何制作简单计算器?
16|变量命名规范:如何编写优雅的程序?
17|告别新手村:Python 编程基础知识
18|内置数据类型包括哪几种?
19|列表如何处理同类数据?
20|常见常新:列表的常见操作
21|元组:如何处理一次性数据?
22|常见常新:集合的常见操作
23|字典:如何处理映射类型的数据?
24|常见常新:字典的常见操作(上)
25|常见常新:字典的常见操作(下)
26|小试牛刀:如何利用类型转换实现手机通讯录?(上)
27|小试牛刀:如何利用类型转换实现手机通讯录?(下)
28|常见的内置数据类型都何时使用?
29|避坑指南:内置数据类型的常见错误
30|内置数据类型参考:如何使用官方文档与帮助?
31|再回首:“内置数据类型”单元小结
32|if 语句:数据流程出现分支时,怎样编写程序?
33|match 语句:如何通过 match 关键字来处理程序的分支逻辑?
34|while 循环:需要多次重复执行某段程序时,怎么做?
35|for 循环:如何遍历一个对象里的所有元素?
36|语句嵌套:如何处理多重循环的问题?
37|小试牛刀:如何设计一个飞机大战的程序?
38|避坑指南:判断和循环中的常见错误
39|再回首:“判断循环”单元小结
40|输入:如何接收用户通过键盘输入的数据?
41|格式化输出:如何将执行结果通过屏幕输出?
42|F-strings:如何通过定义好的格式进行输出?
43 | 常见常新:文件的打开
44|文件编码:如何解决不同操作系统的文件乱码问题?
45|常见常新:文件的读写
46|常见常新:文件的关闭
47|小试牛刀:如何使用 Python 合并多个文件?
48|再回首:“输入输出与文件操作”单元小结
49|函数的定义:如何优雅地反复引用同一段代码?
50|函数的参数:怎样实现函数与外部数据通信?
51|函数的参数:当函数操作对象不固定时怎么处理?
52|函数的返回值:如何得到函数的执行结果?
53|小试牛刀:如何利用函数实现电商购物车功能?
54|避坑指南:列表作为参数传递出错了怎么办?
55|高阶函数:函数对象与函数调用的用法区别
56|装饰器:函数嵌套的定义与调用的区别
57|再回首:“函数”单元小结
58|编程思想不同会导致怎样的代码差异?
59|类与实例:如何使用面向对象的思想编写程序?
60|类的继承:如何解决代码重用的问题?
61|类的装饰器:如何改变类方法的功能?
62|小试牛刀:如何开发自动咖啡机?
63|避坑指南:类的常见错误
64|init 方法:如何为对象传递参数?
65|再回首:“类”单元小结
66 | 模块的导入:如何使用其他人编写好的代码功能?
67 | 标准库:Python 默认提供的便捷功能有哪些?
68 | 自定义模块:如何编写一个完整功能?
69 | 第三方模块的使用:如何使用其他人编写的代码?
70 | 小试牛刀:如何使用 Python 为函数求导?
71|再回首:“模块与标准库”单元小结
72|初识异常:异常的产生与分类
73|异常捕获:出现异常时,如何利用程序进行处理?
74|自定义异常捕获:如何定义业务异常?
75|避坑指南:编写捕获异常程序时经常出现的问题
76|再回首:“异常处理”单元小结
77|扩展数据类型:怎样使用更复杂的数据类型?
78|魔术方法:怎样通过类构造自己需要的数据类型?
79|怎样将 Python 和 C++ 结合起来混合编程?
80|怎样将已有算法改造成符合项目的特定算法?
81|设计模式:怎样合理组合多个函数和类?
82|Redis 数据库:怎样使用 NoSQL 数据库?
83|关系型数据库:怎样使用关系型数据库?
84|计算资源充足时,如何通过并行设计提高效率?
85|多进程间如何通信?
86|再回首:“高级数据类型与算法”单元小结
87|理论盘点:数据分析的流程及对应的 Python 库
88|理论盘点:数据采集的方法与 HTTP 协议
89|理论盘点:任务的并行执行原理
90|理论盘点:非规范化数据处理的基础与正则表达式
91|如何获取网页上的数据并存储到文件?
92|小试牛刀:如何将数据进行图形化展示?
93|再回首:“数据分析”单元小结
94|理论盘点:文件类型与对应的 Python 函数库
95|如何批量读取 Excel 文件?
96|如何实现数据的批量格式转换?
97|如何扩展数据类型?
98|再回首:“办公自动化”单元小结
99|理论盘点:Web 客户端与服务端
100|理论盘点:MVC 模型是什么?
101|如何使用Django搭建简单的Web服务器?
102|如何使用Django-admin实现文章上传?
103|如何使用Django实现文章发布?
104|再回首:“Web开发”单元小结
105|理论盘点:人脸识别的一般步骤
106|理论盘点:人脸识别常用的 Python 库有哪些?
107|怎样通过 OpenCV 采集视频信号?
108|如何训练人脸模型?
109|怎样设计人脸识别系统?
110|再回首:“计算机视觉”单元小结
111|聚焦异同:物联网与互联网有啥不一样?
112|理论盘点:基础但不简单的 TCP 协议
113|理论盘点:物模型与模组
114|如何为 ESP32 安装 MicroPython?
115|怎样通过 MQTT 协议构建消息队列?
116|小试牛刀:在 OLED 屏幕和手机远程同时显示室内温度
117|再回首:“物联网”单元小结
118|结束语:人生苦短,我用Pyhon
结课测试|来赴一场满分之约吧!
直播加餐|与AI共同编程,用ChatGPT学Python
直播加餐|用OpenAI API理解Python数据类型
直播加餐|掌握Gradio框架:为 AI Agent 程序定制界面
本节摘要

课后习题
请你编写程序,统计一篇文章中出现频率在前五的单词,并将单词和出现次数一起输出到终端。

课程代码、课件及其他相关资料地址
https://gitee.com/wilsonyin/zero-basics-python

登录 后留言

全部留言(15)

  • 最新
  • 精选
Cy23
看了下同学的留言学习了下,并改写正则,使其捕获单词排除换行和空格等 改写如下: from re import findall from collections import Counter with open('./demo1.txt', 'r') as f: data = f.read().lower() words = findall(r'\b\w*?\S\b', data) print(Counter(words)) print(Counter(words).most_common(5))

作者回复: 赞,不断迭代代码是正确提高编程能力的有效方式

2023-01-20
1
有风
解包self.other_x , self.other_y = other和 直接使用other.x和other.y还啥别区别?

作者回复: 本质上它们都是用于访问对象属性的不同方式。硬要比较的话,它们在使用场景和可读性方面有一些差异。 使用解包赋值: self.other_x, self.other_y = other 这种方式通常用于将一个对象的多个属性赋值给另一个对象的多个属性。 它可以使代码更加紧凑和简洁,特别是当需要同时赋值多个属性时。 缺点是如果解包的属性名称发生变化,就需要同时修改多个地方。 直接访问属性: self.other_x = other.x self.other_y = other.y 这种方式更加明确和直观,可读性较高。 当只需要访问或赋值单个属性时,这种方式更加合适。 缺点是如果需要赋值多个属性,代码会变得冗长。

2024-02-22
谢韬 Fragos
如老师提到如果需要累加多个点,比如p1+p2+p3+p4有下面三种方法供大家参考: 第一种方法:在__add__方法中返回Point_2D的类型,而不是tuple。 from collections import namedtuple class Point_2D (namedtuple('Point',['x','y'])): def __add__(self,other): self.other_x, self.other_y= other return self.__class__(self.x+self.other_x,self.y+self.other_y) p1= Point_2D(x=11,y=22) p2 = Point_2D(x=33,y=44) p3 = Point_2D(x=55,y=66) p4 = Point_2D(x=77,y=88) p1+p2+p3+p4 #第二种方法:重载Point_2D的__radd__方法,否则它会以元组的默认加法方式进行。 from collections import namedtuple class Point_2D(namedtuple('Point',['x','y'])): def __add__(self,other): self.other_x , self.other_y = other return self.x + self.other_x, self.y+ self.other_y def __radd__(self,other): self.other_x , self.other_y = other return self.x + self.other_x, self.y+ self.other_y #第三种方法:这段代码还是不够pythonic,__add__和__radd__代码重复了,如果连个方法的表现出一样的行为直接用=就可以了。 from collections import namedtuple class Point_2D(namedtuple('Point',['x','y'])): def __add__(self,other): self.other_x,self.other_y =other return self.x + self.other_x,self.y + self.other_y __radd__=__add__

作者回复: 送你上去~

2023-03-01
PatrickL
import re from collections import Counter with open('hamlet.txt','r') as f: data = f.read().lower() words = re.findall(r'\w+', data) print(Counter(words).most_common(5))
2023-01-16
1
william
import re from collections import Counter words = re.findall(r'\w+', open('a.txt').read().lower()) print(Counter(words).most_common(5))
2024-02-27
Geek_631607
这是一个 Python 程序,它可以统计一篇文章中出现频率在前五的单词,并将单词和出现次数一起输出到终端: ```python from collections import Counter import re def count_words(text): # 使用正则表达式来分割文本,只保留单词 words = re.findall(r'\b\w+\b', text.lower()) # 使用 Counter 来统计单词的出现次数 word_counts = Counter(words) # 找出出现频率最高的 5 个单词 top_five = word_counts.most_common(5) # 输出结果 for word, count in top_five: print(f"{word}: {count}") # 这里是你的文章 text = """ This is a sample text. It contains several words, some of which are repeated. Repeated words should be counted by the program. The program should ignore case, so 'This' and 'this' should be counted as the same word. """ count_words(text) ``` 在这个程序中,我们首先使用正则表达式来分割文本,只保留单词。然后,我们使用 `Counter` 来统计单词的出现次数。最后,我们找出出现频率最高的 5 个单词,并输出结果。 请注意,这个程序会忽略大小写,所以 'This' 和 'this' 会被视为同一个单词。如果你不希望忽略大小写,你可以去掉 `text.lower()` 这一行。 .
2023-12-08
MarkG
import re words = re.findall(r"\w+", open("./../hamlet.txt").read().lower()) Counter(words).most_common(5)
2023-10-21
Geek_Mike
# 自定义命名元组的加法和减法功能 from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) def add(self, other): return self.x + other.x, self.y + other.y Point.__add__ = add def subtract(self, other): return self.x - other.x, self.y - other.y Point.__sub__ = subtract p1 = Point(2, 3) p2 = Point(1, 4) print(p1 + p2) print(p1 - p2)
2023-08-14
Geek_Mike
# 统计一篇文章中出现频率在前五的单词,并将单词和出现次数一起输出到终端 from collections import Counter import re words = re.findall(r'\w+', open('./demo.txt').read()) print(Counter(words).most_common(5)) >>>[('Python', 12), ('3', 12), ('10', 12), ('11', 6), ('is', 6)]
2023-08-14
Greenery
from re import findall with open('demo.txt',encoding='UTF-8') as f: cnt=f.read() c=Counter(findall(r'\w+',cnt)) c.most_common(5)
2023-07-24
收起评论