文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
any()函数和all()函数返回True或False基于 iterable 中元素的真实性。如果 iterable 中的任何元素为真,则函数any()返回True,如果 iterable 中的所有元素都为真,则函数all()返回True。
numbers = [1, 2, 3, 0, 4]
result = any(numbers) # True
result = all(numbers) # False。0使结果为False
图片 7. 迭代模块
itertools模块提供了一组函数来处理迭代器。该模块中的函数包括chain、product和permutations。
import itertools
numbers = [1, 2, 3]
result = list(itertools.permutations(numbers))
# 输出所有排列组合
# [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
图片 8. 生成器
生成器是一种可迭代的类型,它可以即时生成值,而不是将它们存储在内存中。它是使用yield关键字定义的,用于创建自定义迭代器。
# 使用yield关键字创建生成器
def fibonacci\_series(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
# 输出迭代器中的值
for number in fibonacci_series(10):
print(number)
# 0
# 1
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34
图片 9.装饰器
装饰器是一种修改函数或类行为的方法。使用@符号进行定义,可用于向函数添加功能,例如日志记录、计时或身份验证。
def log\_function(func):
def wrapper(\*args, \*\*kwargs):
print(f'Running {func.\_\_name\_\_}')
result = func(\*args, \*\*kwargs)
print(f'{func.\_\_name\_\_} returned {result}')
return result
return wrapper
@log\_function
def add(x, y):
return x + y
print(add(5,7))
# 运行add函数,返回值为12
图片 10. 使用多个函数参数
在 Python 中,可以使用*和运算符来处理多个函数参数。*运算符用于将参数列表作为单独的位置参数进行传递,运算符用于传递关键字参数的字典。
def print\_arguments(\*args, \*\*kwargs):
print(args)
print(kwargs)
print_arguments(1, 2, 3, name='John', age=30)
# (1, 2, 3)
# {'name': 'John', 'age': 30}
11. 动态导入
当你想根据用户输入或配置导入模块时,可以使用模块动态导入模块importlib。
import importlib
module_name = 'math'
module = importlib.import_module(module_name)
result = module.sqrt(9)
12. 字典生成式
字典生成式是一种从现有字典或任何可迭代对象创建字典的简洁方法。它是一种可以替代 for 循环的单行代码,使你的代码更加高效,代码可读性更强。
squared_numbers = {x: x\*\*2 for x in range(1, 6)}
print(squared_numbers)
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
13. 可调用对象
在 Python 中,任何可以称为函数的对象都称为可调用对象,包括函数、方法、类,甚至是定义__call__方法的对象。
class Adder:
def \_\_call\_\_(self, x, y):
return x + y
adder = Adder()
result = adder(3, 4)
print(result)
#7
14.用下划线分隔大数字/字符
大数字很难一眼看出来是多大,在 Python 中可以用下划线来使数字更易读。
num_test = 100\_345\_405 # 一个大数字
print(num_test)
# 100345405
15.快速合并两个字典
可以使用以下代码在 Python 中快速合并 2两个字典。
dictionary_one = {"a": 1, "b": 2}
dictionary_two = {"c": 3, "d": 4}
merged = {\*\*dictionary_one, \*\*dictionary_two}
print(merged)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
16. 列表、集合和字典是可变的
可变意味着可以更改或更新对象(列表、集合或字典),而无需更改内存中对象的指针。实际效果可见如下示例。
在下面的示例中,通过添加一个新城市来更新城市列表,可以看到 ID(对象指针)保持不变,集合和字典也是如此。
cities = ["Munich", "Zurich", "London"]
print(id(cities)) # 2797174365184
cities.append("Berlin")
print(id(cities)) # 2797174365184
# 集合
my_set = {1, 2, 3}
print(id(my_set)) # 2797172976992
my_set.add(4)
print(id(my_set)) # 2797172976992
# 字典
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(id(thisdict)) #2797174128256
thisdict["engine"] = "2500cc"
print(id(thisdict)) #2797174128256
```/>
![](https://img-blog.csdnimg.cn/img_convert/0f79348530f4e0a218602e15803982d1.png)
我们的工作内容是对上市公司的定期公告进行分析。
其中一环节是对大量的pdf格式的文件进行文本处理。
此次的示例,是随机选中的文本内容,共计344个pdf格式文件。
分析过程中对图片图表的需求并不大,将pdf批量转换成txt文本内容已经满足。如果考虑格式以及图片的读取,可以使用Python将pdf转csv、Word。
![](https://img-blog.csdnimg.cn/img_convert/bc699e39813505ec73113cc28f5b1a4b.png)
使用Python调用pdfplumber库,将将PDF格式转为txt格式文本。
首先安装pdfplumber库:
```python
pip install pdfplumber
使用以下Python脚本来遍历指定文件夹中的所有PDF文件,将它们转换为TXT格式,并保存在一个新的文件夹:
import os
import pdfplumber
# 源文件夹路径
source_folder = "D:\\daku\\东鹏\\pdf"
# 目标文件夹路径,用于保存TXT文件
target_folder = "D:\\daku\\东鹏\\txt\_exports"
# 如果目标文件夹不存在,则创建它
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 遍历源文件夹中的所有文件
for filename in os.listdir(source_folder):
if filename.endswith(".pdf"):
# 构建完整的文件路径
file_path = os.path.join(source_folder, filename)
# 使用pdfplumber打开PDF文件
with pdfplumber.open(file_path) as pdf:
# 初始化一个空字符串来保存文本内容
text = ""
# 遍历PDF中的每一页
for page in pdf.pages:
# 提取页面的文本并添加到text变量中
text += page.extract_text()
text += "\n\n" # 添加换行符以分隔不同页面的内容
# 构建目标TXT文件的路径,文件名保持不变,只是扩展名改为.txt
txt_file_path = os.path.join(target_folder, filename.replace(".pdf", ".txt"))
# 将文本内容写入TXT文件
with open(txt_file_path, "w", encoding="utf-8") as txt_file:
txt_file.write(text)
print(f"已转换文件: {filename} -> {txt\_file\_path}")
344个pdf文件很迅速就可以转为txt文本
工作导向不同,工作流程会存在差异,需要读取pdf文件中的图片,相关Python库可以使用将图像中的文字识别为文本进行导出。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!