wuyou008 发表于 2023-10-4 18:02:46

编程学习为什么都优先推荐 Python ?

编程学习为什么都优先推荐 Python ?

将进酒 发表于 2023-10-4 18:03:07

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

使用这个自动化脚本,以编程方式编辑你的图像。
下面是我在编辑图片的常用功能,如模糊、旋转、翻转、合并等。
要实现这些功能,往常都需要安装一些臃肿的软件,但是,一个简单的Python脚本就可以轻松解决。
from PIL import Image
from PIL import ImageDraw

# 合并图像
img1 = Image.open('img101.jpg')
img2 = Image.open('img102.jpg')
combine = Image.blend(img1, img2, 0.5)

# 调整图像大小
resize = Image.open('img101.jpg')
resize = resize.resize((300, 300))

# 翻转图像
flip_image = Image.open('img101.jpg')
flip_image = flip_image.transpose(Image.FLIP_LEFT_RIGHT)

# 模糊图像
blur_image = Image.open('img101.jpg')
blur_image = blur_image.filter(Image.BLUR)

# 添加阴影
shadow_image = Image.open('img101.jpg')
shadow_image = shadow_image.filter(Image.EDGE_ENHANCE_MORE)

# 裁剪图片
crop_image = Image.open('img101.jpg')
crop_image = crop_image.crop((50, 50, 300, 200))

# 增加亮度
bright_image = Image.open('img101.jpg')
bright_image = bright_image.point(lambda p: p + 50)

# 添加文字
text_image = Image.open('img101.jpg')
text_image = text_image.convert('RGB')
draw = ImageDraw.Draw(text_image)
draw.text((10, 10), "Hello World", (255, 255, 255))

# 旋转图像
rotate_image = Image.open('img101.jpg')
rotate_image = rotate_image.rotate(90)

# 保存图像
img1.save('img101.jpg')2. 音频编辑

这个自动化脚本将为你编辑音频文件,你可以提取声音、合并声音、播放声音、分割/切割声音等等,通过这个脚本,终于可以扔掉那些付费软件了。
from pydub import AudioSegment
from pydub.utils import mediainfo
from pydub.playback import play

# 从视频中提取声音
sound = AudioSegment.from_file("video.mp4", format="mp4")
sound.export("music.mp3", format="mp3")

# 获取媒体信息
info = mediainfo("musci.wav")
print(info)

# 播放音频
play("music.mp3")

# 合并音频
sound1 = AudioSegment.from_file("music.mp3")
sound2 = AudioSegment.from_file("music.mp3")
combined = sound1 + sound2
combined.export("music_combined.mp3", format="mp3")

# 分割音频
sound = AudioSegment.from_file("music.mp3", format="mp3")
sound_1 = sound[:10000]
sound_2 = sound
sound_1.export("music_1.mp3", format="mp3")
sound_2.export("music_2.mp3", format="mp3")

# 增大或减小音量
sound = AudioSegment.from_file("music.mp3", format="mp3")
sound_volumn = sound + 10
sound_volumn.export("music_volumn.mp3", format="mp3")

# 为音频添加静音
sound = AudioSegment.from_file("music.mp3", format="mp3")
sound_silence = sound + AudioSegment.silent(duration=1000)
sound_silence.export("music_silence.mp3", format="mp3")3. 文件加解密

工作中,我们经常会产生一些重要的文件,需要限制阅读人员,那么这个脚本就可以提供帮助。
这个脚本使用密码学技术对你的文件进行加密,当你需要打开它们时,你可以使用密码解密它们。
这是一个非常安全的方法来锁定你的文件,因为在没有钥匙的情况下就没办法阅读。
from cryptography.fernet import Fernet

# 加密函数
def Lock_file(file_name, key):
    with open(file_name, 'rb') as file:
      data = file.read()
    f = Fernet(key)
    encrypted_data = f.encrypt(data)
    with open(file_name, 'wb') as file:
      file.write(encrypted_data)
    print("File Lock...")
   
# 解密函数
def Unlock_file(file_name, key):
    with open(file_name, 'rb') as file:
      data = file.read()
    f = Fernet(key)
    decrypted_data = f.decrypt(data)
    with open(file_name, 'wb') as file:
      file.write(decrypted_data)
    print("File Unlock...")
   
key = input("Enter the key: ")
Lock_file('test.txt', key)
Unlock_file('test.txt', key)4. 录屏工具

录屏是现如今使用非常频繁的一类工具,但是,目前很多录屏软件都收费,有的导出时会在视频上添加水印。
所以,知乎上也经常看到有不少人迫切需求无水印、免费的录屏软件。
其实,一个Python脚本就可以搞定!
import pyautogui
import numpy as np
import cv2
import keyboard

def Screen_Recording():
    while True:
      # Press R to Start Recording
      if keyboard.is_pressed('r'):
            print("Recording Has been Started...")
            # resolution
            capture_area = (1920, 1080)
            
            codec = cv2.VideoWriter_fourcc(*'mp4v')
            filename = "Your_Recording.mp4"

            fps = 60.0
            output_video = cv2.VideoWriter(filename, codec, fps, capture_area)
            while True:
                image = pyautogui.screenshot()
                Image_frame = np.array(image)
                Image_frame = cv2.cvtColor(Image_frame, cv2.COLOR_BGR2RGB)
                output_video.write(Image_frame)
                cv2.waitKey(1)
                # Press Q button to Stop recording
                if keyboard.is_pressed('q'):
                  print("Recording Has been Stopped...")
                  break
            output_video.release()
            cv2.destroyAllWindows()
Screen_Recording()5. 从PDF中提取表格

从PDF中提取表格是一项复杂的任务,通过OCR技术效果一般都不太理想,手动重新建个表格工作量又比较大。
这个脚本将简单地从你的PDF中提取表格,它不仅 可以提取单个PDF的表格,还可以从多个PDF中一个一个地提取表格。
import camelot
table = camelot.read_pdf('test.pdf', pages='1-2')

# 获取表的总数
print("Total tables: ", table.n)
print(table.df)
print(table.df)

# 把表格导出为CSV
table.to_csv('table1.csv')
table.to_csv('table2.csv')

# 把表格导出为Excel
table.to_excel('table1.xlsx')
# Export Table to HTML
table.to_html('table1.html')

# 一次性提取和导出表
table.export('tables.csv', f='csv', compress=True)

table.parse(['Date', 'Description', 'Amount'])6. 办公自动化

你是否想象过你也可以用Python将MS Office软件自动化?
Office三件套Word、PPT、Excel是绝大多数人在工作和学习中都会用到的工具,但是,目前很多人还都是手动处理一些重复的工作,效率非常低。
这个脚本就可以解放你的双手,实现MS Office的自动化。
# Excel自动化
import xlrd
wb = xlrd.open_workbook('test.xlsx')
worksheet = wb.sheet_by_index(0)
# 根据行、列读取数据
print(worksheet.cell_value(0, 0))
# read whole row
print(worksheet.row_values(0))

# 读取整列
print(worksheet.col_values(1))

# 写入Excel
worksheet.write(0, 0, 'Hello')
wb.save('test.xlsx')

# Word自动化
import docx

doc = docx.Document("zen_of_python.docx")

# 逐段读取
text =
print(text)

# 逐表读取
for table in doc.tables:
    for row in table.rows:
      for cell in row.cells:
            print(cell.text)

# 写入Word文档
doc.add_paragraph("Hello World")
doc.save("test.docx")

# PowerPoint自动化
from pptx import Presentation

# 浏览幻灯片
PP = Presentation('file.pptx')
for slide in PP.slides:
    for shape in slide.shapes:
      for paragraph in shape.text_frame.paragraphs:
            for data in paragraph.runs:
                print(data.text)
# 写入PPT
PP = Presentation()
title_slide_layout = PP.slide_layouts
slide = PP.slides.add_slide(title_slide_layout)
title = slide.shapes.title
title.text = "Medium Article"
PP.save('file.pptx')7. 图片转PDF

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

它使用谷歌文本转语音API,将你的文本内容转换为人工智能机器人的声音。
from pygame import mixer
from gtts import gTTS

def main():
   tts = gTTS('Like This Article')
   tts.save('output.mp3')
   mixer.init()
   mixer.music.load('output.mp3')
   mixer.music.play()
   
if __name__ == "__main__":
   main()9. 图片压缩

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

这个简单的脚本可以给任何图片加水印。
你可以设置文本、位置和字体。
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
def watermark_img(img_path,res_path, text, pos):
    img = Image.open(img_path)
    wm = ImageDraw.Draw(img)
    col= (9, 3, 10)
    wm.text(pos, text, fill=col)
    img.show()
    img.save(res_path)
img = 'initial.jpg'
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 反爬虫及应对方案了
数据分析(可视化)

http://picx.zhimg.com/v2-6f32f979d1000ed24328850e6193626d_r.jpg?source=1940ef5c
最全 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:
sqlCopy code
function sum(a, b) {
    return a + b;
}
console.log(sum(3, 4));Java:
csharpCopy code
public class Main {
    public static int sum(int a, int b) {
      return a + b;
    }

    public static void main(String[] args) {
      System.out.println(sum(3, 4));
    }
}Python:
pythonCopy code
def sum(a, b):
    return a + b

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 本身就具有极强的语言生态优势。
(此处可以有广告,但是并没有)

言尽于此,我甚至觉得没必要再展开具体地说什么安装配置或者代码示例,因为想学习的人自己会搞定的。
以上。
页: [1]
查看完整版本: 编程学习为什么都优先推荐 Python ?