[编程开发] 编程学习为什么都优先推荐 Python ?

[复制链接]
wuyou008 发表于 2023-10-4 18:02:46|来自:北京 | 显示全部楼层 |阅读模式
编程学习为什么都优先推荐 Python ?
全部回复5 显示全部楼层
将进酒 发表于 2023-10-4 18:03:07|来自:北京 | 显示全部楼层
如果要从事编程开发领域,还是建议先从C语言开始,对于编程语言基础知识和概念的理解会更有帮助。
如果从效率角度出发,只想学一门编程语言来拓展自己的计算机知识,提升工作效率,Python的确是一个不错的选择。
Python是一门高阶的编程语言,把很多难以理解的概念和用法全部清除掉了,在用法上已经非常接近自然语言的表达方式。
所以,通过短时间的学习就可以轻松上手处理一些简单的任务,尤其是Python有丰富的工具包,结合这些工具包可以应用到我们工作、生活中的很多方面,能够让我们从这种低投入、低成本的学习中受益很多。
下面就找一些比较常用的场景给大家举一下例子。
1. 图像编辑

使用这个自动化脚本,以编程方式编辑你的图像。
下面是我在编辑图片的常用功能,如模糊、旋转、翻转、合并等。
要实现这些功能,往常都需要安装一些臃肿的软件,但是,一个简单的Python脚本就可以轻松解决。
  1. from PIL import Image
  2. from PIL import ImageDraw
  3. # 合并图像
  4. img1 = Image.open('img101.jpg')
  5. img2 = Image.open('img102.jpg')
  6. combine = Image.blend(img1, img2, 0.5)
  7. # 调整图像大小
  8. resize = Image.open('img101.jpg')
  9. resize = resize.resize((300, 300))
  10. # 翻转图像
  11. flip_image = Image.open('img101.jpg')
  12. flip_image = flip_image.transpose(Image.FLIP_LEFT_RIGHT)
  13. # 模糊图像
  14. blur_image = Image.open('img101.jpg')
  15. blur_image = blur_image.filter(Image.BLUR)
  16. # 添加阴影
  17. shadow_image = Image.open('img101.jpg')
  18. shadow_image = shadow_image.filter(Image.EDGE_ENHANCE_MORE)
  19. # 裁剪图片
  20. crop_image = Image.open('img101.jpg')
  21. crop_image = crop_image.crop((50, 50, 300, 200))
  22. # 增加亮度
  23. bright_image = Image.open('img101.jpg')
  24. bright_image = bright_image.point(lambda p: p + 50)
  25. # 添加文字
  26. text_image = Image.open('img101.jpg')
  27. text_image = text_image.convert('RGB')
  28. draw = ImageDraw.Draw(text_image)
  29. draw.text((10, 10), "Hello World", (255, 255, 255))
  30. # 旋转图像
  31. rotate_image = Image.open('img101.jpg')
  32. rotate_image = rotate_image.rotate(90)
  33. # 保存图像
  34. img1.save('img101.jpg')
复制代码
2. 音频编辑

这个自动化脚本将为你编辑音频文件,你可以提取声音、合并声音、播放声音、分割/切割声音等等,通过这个脚本,终于可以扔掉那些付费软件了。
  1. from pydub import AudioSegment
  2. from pydub.utils import mediainfo
  3. from pydub.playback import play
  4. # 从视频中提取声音
  5. sound = AudioSegment.from_file("video.mp4", format="mp4")
  6. sound.export("music.mp3", format="mp3")
  7. # 获取媒体信息
  8. info = mediainfo("musci.wav")
  9. print(info)
  10. # 播放音频
  11. play("music.mp3")
  12. # 合并音频
  13. sound1 = AudioSegment.from_file("music.mp3")
  14. sound2 = AudioSegment.from_file("music.mp3")
  15. combined = sound1 + sound2
  16. combined.export("music_combined.mp3", format="mp3")
  17. # 分割音频
  18. sound = AudioSegment.from_file("music.mp3", format="mp3")
  19. sound_1 = sound[:10000]
  20. sound_2 = sound[10000:]
  21. sound_1.export("music_1.mp3", format="mp3")
  22. sound_2.export("music_2.mp3", format="mp3")
  23. # 增大或减小音量
  24. sound = AudioSegment.from_file("music.mp3", format="mp3")
  25. sound_volumn = sound + 10
  26. sound_volumn.export("music_volumn.mp3", format="mp3")
  27. # 为音频添加静音
  28. sound = AudioSegment.from_file("music.mp3", format="mp3")
  29. sound_silence = sound + AudioSegment.silent(duration=1000)
  30. sound_silence.export("music_silence.mp3", format="mp3")
复制代码
3. 文件加解密

工作中,我们经常会产生一些重要的文件,需要限制阅读人员,那么这个脚本就可以提供帮助。
这个脚本使用密码学技术对你的文件进行加密,当你需要打开它们时,你可以使用密码解密它们。
这是一个非常安全的方法来锁定你的文件,因为在没有钥匙的情况下就没办法阅读。
  1. from cryptography.fernet import Fernet
  2. # 加密函数
  3. def Lock_file(file_name, key):
  4.     with open(file_name, 'rb') as file:
  5.         data = file.read()
  6.     f = Fernet(key)
  7.     encrypted_data = f.encrypt(data)
  8.     with open(file_name, 'wb') as file:
  9.         file.write(encrypted_data)
  10.     print("File Lock...")
  11.    
  12. # 解密函数
  13. def Unlock_file(file_name, key):
  14.     with open(file_name, 'rb') as file:
  15.         data = file.read()
  16.     f = Fernet(key)
  17.     decrypted_data = f.decrypt(data)
  18.     with open(file_name, 'wb') as file:
  19.         file.write(decrypted_data)
  20.     print("File Unlock...")
  21.    
  22. key = input("Enter the key: ")
  23. Lock_file('test.txt', key)
  24. Unlock_file('test.txt', key)
复制代码
4. 录屏工具

录屏是现如今使用非常频繁的一类工具,但是,目前很多录屏软件都收费,有的导出时会在视频上添加水印。
所以,知乎上也经常看到有不少人迫切需求无水印、免费的录屏软件。
其实,一个Python脚本就可以搞定!
  1. import pyautogui
  2. import numpy as np
  3. import cv2
  4. import keyboard
  5. def Screen_Recording():
  6.     while True:
  7.         # Press R to Start Recording
  8.         if keyboard.is_pressed('r'):
  9.             print("Recording Has been Started...")
  10.             # resolution
  11.             capture_area = (1920, 1080)
  12.             
  13.             codec = cv2.VideoWriter_fourcc(*'mp4v')
  14.             filename = "Your_Recording.mp4"
  15.             fps = 60.0
  16.             output_video = cv2.VideoWriter(filename, codec, fps, capture_area)
  17.             while True:
  18.                 image = pyautogui.screenshot()
  19.                 Image_frame = np.array(image)
  20.                 Image_frame = cv2.cvtColor(Image_frame, cv2.COLOR_BGR2RGB)
  21.                 output_video.write(Image_frame)
  22.                 cv2.waitKey(1)
  23.                 # Press Q button to Stop recording
  24.                 if keyboard.is_pressed('q'):
  25.                     print("Recording Has been Stopped...")
  26.                     break
  27.             output_video.release()
  28.             cv2.destroyAllWindows()
  29. Screen_Recording()
复制代码
5. 从PDF中提取表格

从PDF中提取表格是一项复杂的任务,通过OCR技术效果一般都不太理想,手动重新建个表格工作量又比较大。
这个脚本将简单地从你的PDF中提取表格,它不仅 可以提取单个PDF的表格,还可以从多个PDF中一个一个地提取表格。
  1. import camelot
  2. table = camelot.read_pdf('test.pdf', pages='1-2')
  3. # 获取表的总数
  4. print("Total tables: ", table.n)
  5. print(table[0].df)
  6. print(table[1].df)
  7. # 把表格导出为CSV
  8. table[0].to_csv('table1.csv')
  9. table[1].to_csv('table2.csv')
  10. # 把表格导出为Excel
  11. table[0].to_excel('table1.xlsx')
  12. # Export Table to HTML
  13. table[0].to_html('table1.html')
  14. # 一次性提取和导出表
  15. table.export('tables.csv', f='csv', compress=True)
  16. table[0].parse(['Date', 'Description', 'Amount'])
复制代码
6. 办公自动化

你是否想象过你也可以用Python将MS Office软件自动化?
Office三件套Word、PPT、Excel是绝大多数人在工作和学习中都会用到的工具,但是,目前很多人还都是手动处理一些重复的工作,效率非常低。
这个脚本就可以解放你的双手,实现MS Office的自动化。
  1. # Excel自动化
  2. import xlrd
  3. wb = xlrd.open_workbook('test.xlsx')
  4. worksheet = wb.sheet_by_index(0)
  5. # 根据行、列读取数据
  6. print(worksheet.cell_value(0, 0))
  7. # read whole row
  8. print(worksheet.row_values(0))
  9. # 读取整列
  10. print(worksheet.col_values(1))
  11. # 写入Excel
  12. worksheet.write(0, 0, 'Hello')
  13. wb.save('test.xlsx')
  14. # Word自动化
  15. import docx
  16. doc = docx.Document("zen_of_python.docx")
  17. # 逐段读取
  18. text = [p.text for p in doc.paragraphs]
  19. print(text)
  20. # 逐表读取
  21. for table in doc.tables:
  22.     for row in table.rows:
  23.         for cell in row.cells:
  24.             print(cell.text)
  25. # 写入Word文档
  26. doc.add_paragraph("Hello World")
  27. doc.save("test.docx")
  28. # PowerPoint自动化
  29. from pptx import Presentation
  30. # 浏览幻灯片
  31. PP = Presentation('file.pptx')
  32. for slide in PP.slides:
  33.     for shape in slide.shapes:
  34.         for paragraph in shape.text_frame.paragraphs:
  35.             for data in paragraph.runs:
  36.                 print(data.text)
  37. # 写入PPT
  38. PP = Presentation()
  39. title_slide_layout = PP.slide_layouts[0]
  40. slide = PP.slides.add_slide(title_slide_layout)
  41. title = slide.shapes.title
  42. title.text = "Medium Article"
  43. PP.save('file.pptx')
复制代码
7. 图片转PDF

这个简单的自动化脚本帮助你将你的图像转换为PDF格式。
  1. from PIL import Image
  2. def Images_Pdf(filename, output):
  3.     images = []
  4. for file in filename:
  5.         im = Image.open(file)
  6.         im = im.convert('RGB')
  7.         images.append(im)
  8.    
  9.     images[0].save(output, save_all=True, append_images=images[1:])
  10. Images_Pdf(["test1.jpg", "test2.jpg", "test3.jpg"], "output.pdf")
复制代码
8. 文本转语音

它使用谷歌文本转语音API,将你的文本内容转换为人工智能机器人的声音。
  1. from pygame import mixer
  2. from gtts import gTTS
  3. def main():
  4.    tts = gTTS('Like This Article')
  5.    tts.save('output.mp3')
  6.    mixer.init()
  7.    mixer.music.load('output.mp3')
  8.    mixer.music.play()
  9.    
  10. if __name__ == "__main__":
  11.    main()
复制代码
9. 图片压缩

有些网站会对图片的大小进行严格的限制,比如,一些报考网站。
这时候,就需要用到图片压缩工具。
但是,很多压缩工具对图片的质量影响较大。
这个脚本把你的照片压缩成较小的尺寸而质量不变。
  1. import PIL
  2. from PIL import Image
  3. from tkinter.filedialog import *
  4. fl=askopenfilenames()
  5. img = Image.open(fl[0])
  6. img.save("result.jpg", "JPEG", optimize = True, quality = 10)
复制代码
10. 图像加水印

这个简单的脚本可以给任何图片加水印。
你可以设置文本、位置和字体。
  1. from PIL import Image
  2. from PIL import ImageFont
  3. from PIL import ImageDraw
  4. def watermark_img(img_path,res_path, text, pos):
  5.     img = Image.open(img_path)
  6.     wm = ImageDraw.Draw(img)
  7.     col= (9, 3, 10)
  8.     wm.text(pos, text, fill=col)
  9.     img.show()
  10.     img.save(res_path)
  11. img = 'initial.jpg'
  12. watermark_img(img, 'result.jpg','IshaanGupta', pos=(1, 0))
复制代码
上面介绍了10个场景,都是日常工作和生活中经常会遇到的。之前大多数同学都会选择寻求一些繁琐的工具,甚至付费,最终效果也不太理想。
通过简单的Python脚本,其实就可以彻底解决我们的问题,还可以解放双手,大大的提高效率,感兴趣的赶紧试一下吧!
最后,欢迎大家添加vx:code_7steps和我进行技术交流!
<hr/>更多优秀内容

大家都是怎么自学Python爬虫的呢?python中self与__init__怎么解释能让小白弄懂?如何最简单、通俗地理解Python的面向对象?
RD1223 发表于 2023-10-4 18:03:12|来自:北京 | 显示全部楼层
反正我不坚持一定要python,编程语言经过近十年的发展,已经有很多不错的入门选择了。
不过,第一门语言选python有个好处,如果你发现这个都学不会,那可以确定自己真的不适合干这个,早点放弃,沉没成本低
ε-(´∀`; )
李强 发表于 2023-10-4 18:03:54|来自:北京 | 显示全部楼层
简单易学,用途广泛。下面举例来看一下:
网络爬虫
提到爬虫,相信绝大部分人的第一反应就是 Python,尽管其他编程语言一样能写爬虫,但在人们的印象中,爬虫似乎与 Python 绑定了一样,由此可见爬虫在 Python 中的分量。
100+ Python 爬虫项目库
Python 爬虫(一):爬虫伪装
Python爬虫(二):Requests
Python爬虫(三):BeautifulSoup
Python 爬虫(四):Selenium
Python 爬虫(五):PyQuery
Python 爬虫(六):Scrapy 实战
Python 爬虫(七):pyspider
Python 爬取豆瓣短评
Python 爬取爱奇艺弹幕
Python 爬取公众号文章
Python 爬取王者农药全套皮肤
用 Python 爬取英雄联盟全部皮肤
用 Python 爬取 QQ 音乐全部歌曲
用 Python 爬取三大相亲软件评论区
可能是最全的 Python 反爬虫及应对方案了
数据分析(可视化)


最全 NumPy 教程
Python 数据分析入门知识手册
系统的学会 Pandas 看这篇就够了
Numpy 闯关 100 题,你能闯几关
Pandas 闯关 100 题,你能闯几关
用 Python 分析电影《我和我的家乡》
用 Python 来绘制玫瑰图等常见疫情图
这可能是 Python 里最强的地图绘制神器
一款可以绘制出手绘风格的 Python 绘图神器
Python 数据可视化利器 Seaborn 绘制常见图形
超详细 Pyecharts1.x 教程,让你的图表动起来~
全文 40000 字,最强(全) Matplotlib 实操指南
2021年国庆你的朋友去哪浪了?让Python告诉你!
一款基于蚂蚁金服开源库封装的 Python 可视化神器
这款 Python 数据可视化神器比 matplotlib 效率高十倍
14张Python代码速查表,玩转数据分析&可视化&机器学习
自动化办公
无论是程序员还是其他行业的工作人员,自动化办公都能起到事半功倍的效果。
Python 批量合并 Excel
Python 自动化办公之 PPT
Python 实现 Word 批量转 PDF
用 Python 一键修改上万个文件名
Python 实现电子邮件的发送与收取
微软开源 Python 自动化神器 Playwright
Python 自动化办公之 Excel 看这一篇就够了
Python 自动化办公之 Word 看这一篇就够了
有了这个库,轻松用 Python 自动化操作鼠标
用 Python 库 PySimpleGUI 制作办公自动化小软件
自动化神器!Python 批量读取身份证信息写入 Excel
Python Web
Flask 中文文档
Flask 优秀资源大全
Django 优秀资源大全
Flask 实现的学生培养计划管理系统
Django 实现学生在线考试管理系统
毕业设计!Python实现学生教师刷脸签到系统(Flask)
深度学习 & 机器学习
PyTorch 官网
TensorFlow 官网
神经网络可视化工具集锦
PyTorch 学习手册中文版 PDF
TensorFlow2.0 学习手册 PDF
机器学习闯关200题,你能闯几关?
Python笔记大全(入门+爬虫+数据分析可视化+机器学习+深度学习)
macroblue 发表于 2023-10-4 18:04:15|来自:北京 | 显示全部楼层

  • 简洁易读:Python 的代码风格简单明了,特别适合初学者。
  • 功能强大:Python 拥有丰富的标准库,可以满足各种不同的编程需求,例如数据分析、机器学习、Web 开发等。
  • 社区活跃:Python 有着庞大的社区,人们可以轻松获得技术支持和帮助,也可以参与开源项目的开发。
  • 应用广泛:Python 被广泛应用于各个领域,包括科学计算、数据分析、Web 开发、游戏开发等。

下面是在 JavaScript、Java 和 Python 中实现一个简单的求和功能的代码对比:
JavaScript:
  1. sqlCopy code
  2. function sum(a, b) {
  3.     return a + b;
  4. }
  5. console.log(sum(3, 4));
复制代码
Java:
  1. csharpCopy code
  2. public class Main {
  3.     public static int sum(int a, int b) {
  4.         return a + b;
  5.     }
  6.     public static void main(String[] args) {
  7.         System.out.println(sum(3, 4));
  8.     }
  9. }
复制代码
Python:
  1. pythonCopy code
  2. def sum(a, b):
  3.     return a + b
  4. print(sum(3, 4))
复制代码
从上面的代码可以看出,Python 的代码比 JavaScript 和 Java 简洁明了,语法简单易懂,特别适合初学者。而且在 Python 中不需要在意大括号、分号等细节,可以更加专注于实现功能本身。
总的来说,Python 的易学易用和高效的特点使其成为编程学习的理想语言。
yuyuyouling 发表于 2023-10-4 18:04:38|来自:北京 | 显示全部楼层
十年前,我自学的时候是因为入门简单。现在的话是因为入门简单+生态

时间过得好快啊,现在回忆大学都是十年前了。
十年前我在大学,读信息安全。信息安全现在归给了网络安全学院,但十年前是在通信工程学院,是不折不扣的工科专业。
我刚去看了看大学成绩单的复印件,除了计算机基础、微机原理、操作系统、数据结构与算法这些课,正经的「语言」学了 4 门( 2 必修 2 选修):C 语言(大一上)、MATLAB(大一下)、C++(选修,大二上)、Java(选修,大三上)。这几门我也都过了,成绩不错的也有85+。
但是,说实话,一直到大三,我都没有写出过任何一段属于自己的代码。
可能是我比较菜吧,也可能是我当时忙着打游戏,(也可能是课程本身无聊?)当时的大作业也都很常规,我要么靠室友,要么抄抄改改,也就那么混过去了。反正不管是因为什么原因,当时我只能算是有点计算机常识,实际的编程能力无限接近于 0。
说起来也惭愧,无意给给母校抹黑,但是我觉得我这样的人在任何程度的学校都不算少,特别是那些只开设一部分计算机课程的理工科专业,好像学不会编程也无所谓,反正我也不是计算机专业,将来也不一定非得干码农。

现在我略懂代码(不是谦虚,真的只是略懂),有一个契机和一个关键因素:
契机是我想自己求证一下知乎一个问题是否刷赞了;(遇到一个带来内驱力的需求
而那个促使我学会一点点代码的关键因素就是「选择了 Python」。
关于这件事,我以前写过一个回答:
如何入门 Python 爬虫?当时的我也不懂什么费曼学习法,也可能游戏打的无聊了,就开始在知乎写回答,学习,生活,PPT,反正什么都写一些。年轻人嘛,争强好胜的,写完回答还总跟别人比谁的赞多。后来遇到一个疑似刷赞的回答,我想用三零用户的比例判断他是不是刷赞,就开始自学爬虫,因而入门了 Python(真·三天入门),再后来就是正向的反馈带来的激励,觉得编程也不难,而且的的确确能解决生活中遇到的各种实际问题,就乱七八糟地学,乱七八糟地写。

总结一下我的学习经历吧:科班并没有教会我什么实际操作(但还是无比感谢学校教会我的基础知识和逻辑思维,狗头保命),反而是真正遇到需要解决的问题时的内驱力,让我自学了 Python。

所以我后来经常建议大家学习 Python 来入门编程
差不多十年前看到的那句话:「编程是最容易习得的超能力」。至今依然深以为然。
即使现在多了很多低代码的平台,有了很多可视化 RPA 的工具,我依然觉得,不论文理工医任何学科,人人都应该懂点会点编程,而且最佳的选择就是 Python,没有其他。在这个年代, Python 很有可能成为你和新时代对话的那个翻译器,成为你走进新世界的那把钥匙。
每个人学编程都可能有不同的理由、原因、动力,题目问的是为什么「推荐Python」,而不是为什么进行「编程学习」,我就不再赘述学编程的必要性了,直接假定看到这篇回答的人已有学习动力。

选择 Python 的理由在开头第一句话已经说了:入门简单+生态。
简单与否是个人主观的感觉,但是我的个人经验和观察来看,有其他语言基础的,入门 Python 只需几个小时;0 基础的也至多需要一周。
不过也需知,此处指的仅仅是入门简单。入门便是为你打开一扇门,就像楚门推开另一个世界的大门一样,里面是未知的精彩。Python 是功能完善的高级语言,理论上可以用来实现任何功能,入门之后自然会有不同的方向供你选择深入学习,任何一门知识学至深处都会有艰难瓶颈之处。

然后便是生态
生态就是围绕某一件事形成的聚落。就好比开发者们围绕苹果开发各种 App 而形成的软件生态,成为其维护商业地位的护城河。
2021年,Python 登顶编程语言排行第一,开启了新一轮的霸榜(之前是 C 语言和 Java)。这种生态是有正向循环的,学的人越多,分享相关知识的人越多,创作的内容也越多,初学者能找到的资料越多,遇到问题时越容易找到解决办法,越容易找到同好和导师。
可以说,不论你以何种目的学习编程,Python 都能找到相应的学习资料和练手程序。更何况,数据处理和分析、人工智能、自动化办公、爬虫,这些非科班生最常用到或学习的技能,Python 本身就具有极强的语言生态优势。
(此处可以有广告,但是并没有)

言尽于此,我甚至觉得没必要再展开具体地说什么安装配置或者代码示例,因为想学习的人自己会搞定的。
以上。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则