写在前面:
在51cto上发布了python入门视频教程完整版,现在把该教程ppt和程序演示整理成文章发表出来,计划定期更新,欢迎关注和拍砖。以下为正文。
python作者介绍:
吉多·范罗苏姆(Guido van Rossum),荷兰人。1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位。并于同年加入一个多媒体组织CWI,做调研员。他趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。2005年加入谷歌,一半的时间在python的维护开发上。2012年12月7日,Dropbox宣布吉多·范罗苏姆加入Dropbox公司
python起源:
1989 年的圣诞节期间,吉多·范罗苏姆(Guido van Rossum)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。ABC 是由吉多参加设计的一种教学语言。就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并取得了非常好的效果,语言命名来自Guido所挚爱的电视剧Monty Python's Flying Circus (BBC1960-1970年代播放的室内情景幽默剧,以当时的英国生活为素材)。他希望这个新的叫做Python的语言,能实现他的理念(一种C和shell之间,功能全面,易学易用,可拓展的语言)。Guido作为一个语言设计爱好者,已经有过设计语言的的尝试。
python诞生:
1991年,第一个Python编译器(解释器)诞生。基于C语言实现,并能够调用C库(.so文件)。Python从诞生的那一刻起就已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。其丰富的数据类型也为它在今后的数据分析领域当中建立起了基石
The Zen of Python, by Tim Peters (python之禅):
英文版:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
中文版:
优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即便假借特例的实用性之名
也不可违背这些规则
不要包容所有错误
除非你确定需要这样做
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案
虽然这并不容易,因为你不是 Python 之父
做也许好过不做
但不假思索就动手还不如不做
如果你无法向人描述你的方案,那肯定不是一个好方案
反之亦然
命名空间是一种绝妙的理念,我们应当多加利用
python语言特性:
简单优雅易学
免费开源的高层语言
可扩展、 可嵌入的胶水语言
类库丰富
面向对象与面向过程
解释型、动态、强类型定义语言
解释型和编译型:
动态语言和静态语言:
动态类型语言 :动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。
静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等
强类型和弱类型:
强类型定义语言 :一旦一个变量被指定了数据类型,不经过强制转换,数据类型不会再改变。是类型安全语言
弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
判断语言的强弱一般看这门语言是否经常隐式转换。经常隐式转换的则为弱类型语言
现状与前景:
python能做什么
为什么要学习python
python当前现状
python前景
哪些人适合学习python
哪些企业在用python
python能做什么:
web开发
爬虫开发
系统运维
数据挖掘与分析
机器学习,人工智能
量化投资
桌面开发
图形处理
为什么要学习python:
Python进入山东小学教材
从2018年起,浙江省信息技术教材将启用Python,放弃VB。同时,这一改动也意味着Python将成为浙江高考内容之一
Python或将取代VBA,成为Excel官方脚本语言
python现状与前景:
日需求量:
世界语言排名:
python现状与前景:
python现状与前景:
哪些人适合学习python:
在校大学生
传统网络运维转行大数据Linux运维
对全栈开发感兴趣
转战web开发
金融行业从业者
有志于从事人工智能行业
哪些企业在用python:
python职位要求:
web开发:
精通Python语言,熟悉Django/Tornado/Flask等其中至少一种框架,并有2年以上开发经验;
-精通分布式、多线程、异步及高性能设计、开发及优化;
-熟练使用MySQL、Redis、MongoDB、RabbitMQ等第三方组件;
-熟悉Linux系统,具备编写shell脚本能力;
-熟悉Git, GitHub开发流程;
云平台:
1)熟悉Python语言及Flask、Django、SQLAlchemy等常用框架库,有3年以上基于Python的Web后端开发和设计经验,能独立完成功能实现并提供对应单元测试脚本,能灵活运用PyLint等辅助工具保证代码质量;
2)了解WEB和B/S架构服务的相关技术, 有RESTful API开发或整合的经验;
3)熟悉OpenStack ,CloudStack等开源项目,并以软件研发身份参与过虚拟化、云计算相关项目;
4)2年以上基于Linux系统的开发经验,熟悉Apache或Nginx等WEB服务器;
5)有一定前端开发基础,能基于前端框架组合和定制页面元素;
爬虫:
1、大专以上学历,计算机、软件相关专业;
2、具备2年以上python相关开发经验并且有1年及以上爬虫或解析相关开发经验;
3、具有文本处理、相似度计算、数据清洗算法经验者优先;
4、精通python多线程,精通网页抓取原理及技术,精通正则表达式,从结构化的和非结构化的数据中获取信息, 熟悉搜索引擎和网络爬虫相关技术;
5、有网络爬虫、网页去重、网页信息抽取等相关经验者优先;
6、熟悉django, docker, celery优先;
7、有大数据方面处理经验的优先。
运维:
1.大专及以上学历,扎实的计算机专业基本功;
2.了解 shell,熟悉 linux 环境,对 CentOS 6 及 CentOS 7 有深入的了解;
3.熟悉Javascript / HTML / JSON / HTML5 / JQuery /CSS相关技术;
4.熟练掌握 Python 语言及 web 开发技术(django、 flask、 tornado);
5.熟悉并深入了解自动化运维工具,如 ansible、saltstack 等;
6.有自动化运维平台(服务发布系统、监控平台、资源管理平台)开发经验者优先考虑
机器学习:
1. 全日制本科或以上学历,计算机相关专业优先;
2. 至少精通C/C++/Python/Shell中任一门编程语言,熟练使用Linux系统 ;
3. 熟悉至少一种深度学习框架(Torch、Caffe、TensorFlow、Theano、 CNTK等);
4. 1年以上机器学习研发与业务应用经验,对机器学习算法原理有深刻理 解,有丰富的机器学习、深度学习算法应用经验;
5. 精通常用算法和数据结构,对机器学习算法有较强的实践能力,熟悉 基于GPU/CPU的相关机器学习算法,熟悉搜索技术者优先;
6. 在某个子领域有过较深入的建模经验积累,对DL最新技术进展保持持 续关注者优先。
全栈:
1)全日制本科或以上学历,计算机相关专业优先;
2)具备Python服务端开发经验,熟悉Linux开发环境和Shell编程,熟练使用HTML,CSS,JavaScript等基本前端技术;
3)熟悉MVC架构,熟悉Flask、Tornado、Django等至少一个Python后端框架者优先;
4)熟悉网络爬虫、WEB服务开发、并发并行编程、数据库系统开发;
5)具备机器学习、数据挖掘、推荐系统等经验者优先;
6)具有优秀的团队合作和沟通协作能力,善于学习,乐于分享,能承受较大工作压力;
7)良好的编码习惯及开发文档书写习惯,良好的英文读写能力。
数据分析:
1、具有Python和各种库的经验和知识,并且最好精通简单的ML方法,如分类、决策树、集成方法、集群等;
2、具有独立执行数据分析和数据预处理能力;
3、了解机器学习、NLP、文本挖掘、监督、无监督学习、特征工程、时间序列预测;
4、熟练掌握Python的熟练程度和以下几个包的验:Scikitlearn、Numpy、SciPy、Keras、Theano、TensorFlow、元音palwabbit、OpenAIGym、NLTK、TextBlob、Spacy、Gensim等;
5、熟悉数据挖掘和可视化;
6、精通节点、js、画面、Qlikview,熟悉数据清洗,特征提取和转换可优先考虑;
学习建议:
多学多练多想
理论-实践-理论
不懂先记,学完回顾