题记:大二的时候发现人生苦短,所以信了拍神,开始学Python。学了大半年之后成功转行做前端了。来写个教程帮助大家入门Python。
Python零基础入门
零基础入门就得从最基本的变量,语法格式,数据类型,函数,作用域,模块等基本知识入手(有编程基础基础也得这么来)
和篮球一样,先来三步上篮:
- Python基础知识入门,从程序基础开始学,能看懂代码就可以了。三种选择:
第一种:找一本Python入门教程书,比如《Head First Python 中文版 》《笨办法学Python 》《简明 Python 教程》。Head First系列书籍都非常简单易懂,适合文科生看,从最基本的东西讲起,有编程基础的同学看着会觉得幼稚。另外两本都是普通入门书,随便选。一些Python相关电子书下载, 密码: yjw3。
第二种:看网站入门教程,很多人推荐的廖雪峰Python教程
第三种:视频教程,推荐慕课网。其他还有网易云课堂,学堂在线(这个里边大学课程比较多) - 学写一些基本的Python程序,上述《简明 Python 教程》后边的示例可以做。想更进一步掌握基础,可以做一点leetcode easy题目练练手。(看个人情况呗,反正我是没那个耐心,做题实在太枯燥,虽然写题是很有好处的)
- 做一些感兴趣的小项目,这里有Python习题100例,很基础。觉得不够高大上可以玩实验楼里的项目,实验楼是个不错的网站,可以做一些很好玩的东西。
以上三步可以让你21天精通Python哟
Tips:推荐一个神器,Python运行可视化,可以一步步查看程序运行状态,变量状态,函数调用,内存分配,对于理解变量生命周期,作用域,调试理解程序非常有帮助。
开发工具:推荐Pycharm,有免费社区版,也可用edu邮箱注册专业版。
年底活动,送大家价值1888元的Python学习资料,扫描下方二维码即可获取!
记得转发哟!
Python进阶篇
进阶就是专注于Python的某个领域做深入研究了,Python主要包含了AI领域(NLP,深度学习,图像处理啥的,反正无所不能),Web开发(后端服务,爬虫),数据处理(数据分析,科学计算),工具(比如读写Excel,编写自动化脚本),桌面开发(GUI工具)等等。Python好强大啊,我又想写Python了。
下面简单写写我知道的领域的入门:
Web开发
Python Web框架众多,是建网站的利器。对于建立不太复杂的CMS系统(比如新闻网站,博客网站),Django强到没朋友,开发效率无敌。对于注重灵活性的网站,Flask可以作为首选,灵活而小巧,非常优雅的框架。
- Django入门先看官方文档,了解基本概念。然后开始做实际项目
爬虫(网络数据获取)
先科普,网络爬虫,可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到资源,那么它就会抓取下来。比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。简单地说,利用程序从网页上获取你想要的数据。
Python的爬虫框架非常多,也非常好用。
入门步骤:
- 理解网页是怎么构成的
网页的基本知识包括:
基本的HTML语言知识
理解网站的发包和收包的概念(POST GET)
稍微一点点的js知识,用于理解动态网页 - 解析网页,这里需要学习正则表达式
- 选取一个爬虫框架,比如自带的urllib,request,bs4等等
- 看官方文档,如何使用框架,然后就可以养一只爬虫咯。
数据处理
上边爬虫讲到如何获取数据,这里将学习如何分析处理数据
科学计算,数据处理用到比较多的是matlab,无所不能的Python当然也可以替代它。
numpy pandas是科学运算当中最为重要的两个模块。Matplotlib 是一个非常强大的 Python 数据可视化工具,绘制各种图形。
- 看官网文档,理解这个库的基本用法。
- 学习一些简单的项目,上文提到的实验楼也可以用
AI领域
略从别处引用一点基本介绍
- Theano 是一种用于使用数列来定义和评估数学表达的 Python 库。它可以让 Python 中深度学习算法的编写更为简单。
- Keras 是类似 Torch 的一个精简的,高度模块化的神经网络库。Theano 在底层帮助其优化 CPU 和 GPU 运行中的张量操作。
- Pylearn2 是一个引用大量如随机梯度(Stochastic Gradient)这样的模型和训练算法的库。它在深度学习中被广泛采用,这个库也是以 Theano 为基础的。
- Lasagne 是一个轻量级的库,它可以在 Theano 中建立和训练神经网络。它简单、透明、模块化、实用、专一而克制。
- Blocks 是一种帮助你在 Theano 之上建立神经网络模型的框架。
- Caffe 是一种以表达清晰、高速和模块化为理念建立起来的深度学习框架。它是由伯克利视觉和学习中心(BVLC)和网上社区贡献者共同开发的。谷歌的 DeepDream 人工智能图像处理程序正是建立在 Caffe 框架之上。这个框架是一个 BSD 许可的带有 Python 接口的 C++库。
- nolearn 包含大量其他神经网络库中的包装器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些机器学习的实用模块。
- Genism 是一个部署在 Python 编程语言中的深度学习工具包,用于通过高效的算法处理大型文本集。
- CXXNET 是一种快速,简明的分布式深度学习框架,它以 MShadow 为基础。它是轻量级可扩展的 C++/CUDA 神经网络工具包,同时拥有友好的 Python/Matlab 界面,可供机器学习的训练和预测使用。
这里包含的东西太多了,基本学习方法如上。
附录:
先来看看Python有多强大,不然不能被它所吸引,就学不下去了。
20行代码实现人脸检测与识别:
face_recognition可以通过python或者命令行即可实现人脸识别的功能。使用dlib深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild)上的准确率为99.38%。
# 导入识别库
import face_recognition
# 加载已有的图片作为图像库
known_obama_image = face_recognition.load_image_file("face1.jpg")
known_biden_image = face_recognition.load_image_file("face_kid.jpg")
# 编码加载的图片
obama_face_encoding = face_recognition.face_encodings(known_obama_image)[0]
biden_face_encoding = face_recognition.face_encodings(known_biden_image)[0]
known_encodings = [
obama_face_encoding,
biden_face_encoding
]
# 加载要识别的图片并编码
image_to_test = face_recognition.load_image_file("face2.jpg")
image_to_test_encoding = face_recognition.face_encodings(image_to_test)[0]
# 计算该图片与已有图片的差别值
face_distances = face_recognition.face_distance(known_encodings, image_to_test_encoding)
# 自行设定同一张面孔的分界值,输出比对结果
for i, face_distance in enumerate(face_distances):
print("The test image has a distance of {:.2} from known image #{}".format(face_distance, i))
print("- With a normal cutoff of 0.6, would the test image match the known image? {}".format(face_distance < 0.6))
print("- With a very strict cutoff of 0.5, would the test image match the known image? {}".format(face_distance < 0.5))
print()