我分享的内容只是自己的学习笔记,并不是教程。我是零基础的小白,如果有什么不对的地方请大家看到了给我指出来,谢谢您的阅读。
什么是Python?
Python是一种解释型的、面向对象的动态编程语言。
计算机是根据指令操作处理数据的设备,可编程性是计算机的特性。程序设计是计算机可编程性的体现。编程语言就是能够实现人类与机器之间交互的语言,将人类可读的源代码转换为计算机可运行的目标代码。
编程语言的执行方式有两种:编译型和解释型。
编译,是将源代码一次性转换成目标代码后再运行程序。
解释,是将源代码逐条转换成目标代码的同时运行程序。
编译就好比吃饭的时候炒好一桌子菜后再吃,而解释相当于吃火锅,边涮边吃。
动态型是区别于静态型编程语言来说的。
静态类型语言中,变量的类型必须先声明,即在创建的那一刻就已经确定好变量的数据类型,而后的使用中,只能将这一指定类型的数据赋值给变量。如果强行将其他不相干类型的数据赋值给它,就会引发错误。而动态类型则没有这样的限制,动态编程语言的变量没有一个固定的类型。将什么类型的数据赋值给变量,这个变量就是什么类型
比如鱼香肉丝这个菜,静态型语言中鱼香肉丝就叫鱼香肉丝,不能改变。而在动态型语言中,只要愿意也可以叫宫保鸡丁或者溜肥肠。
面向对象,是和面向过程相对应的一种程序开发方法。
面向过程编程是先分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用。面向过程是具体化的,流程化的,解决一个问题,需要一步一步的分析,一步一步的实现。好比自己在家要炒一桌子菜吃,需要先确定要炒什么菜,然后按照要炒的菜去准备食材,再按照菜谱一个一个菜的炒好。
面向对象编程想要实现需求不再是通过函数的叠加调用,而是通过对象。对象对是现实世界中事物的一种抽象描述,包含事物相关的数据和作用。比如把炒一个菜作为对象,食材是炒菜需要的数据,食谱就是作用。
面向对象编程就是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题所需要的步骤中的行为。面向对象是模型化的,模块化的,需抽象出一个对象,在这里有数据,也有解决问题的方法,需要什么功能直接使用就可以了。好比去饭店吃菜,想吃什么菜就直接点,饭店直接做好一桌子菜端上来,不必知道每个菜是按什么步骤做出来的。
为什么学Python?
Python是由Guido van Rossum在1989年圣诞节期间,决定开发的一个新的解释程序,作为ABC 语言的一种继承。ABC是由Guido参加设计的一种教学语言,就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功。Python英语中是大蟒蛇的意思,Guido取这个名称是因为他是英国的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)的爱好者。
相比于其他语言,Python新手更容易入门,并具有以下特点:
Python的设计哲理是:优雅、明确、简单。在Python中输入:import this,就会出现下文:
The Zen of Python,by Tim Peters
Beautiful is betterthan ugly.
Explicit is betterthan implicit.
Simple is betterthan complex.
Complex is betterthan complicated.
Flat is better thannested.
Sparse is betterthan dense.
Readability counts.
Special cases aren'tspecial enough to break the rules.
Althoughpracticality beats purity.
Errors should neverpass silently.
Unless explicitlysilenced.
In the face ofambiguity, refuse the temptation to guess.
There should beone-- and preferably only one --obvious way to do it.
Although that waymay not be obvious at first unless you're Dutch.
Now is better thannever.
Although never isoften better than *right* now.
If theimplementation is hard to explain, it's a bad idea.
If the implementationis easy to explain, it may be a good idea.
Namespaces are onehonking great idea -- let's do more of those!
Python 的设计哲学,作者:Tim Peters
优雅胜于丑陋。
明确胜于含糊。
简单胜于复杂。
复杂胜于繁琐。
扁平胜于嵌套。
间隔胜于紧凑。
可读性很重要。
即使假借特殊之名,也不应打破这些原则。
尽管实践大于理论。
错误不可置之不理。
除非另有明确要求。
面对模棱两可,拒绝猜测。
用一种方法,最好是只有一种方法来做一件事。
虽然这种方式开始时并不容易,除非你是Python 之父。
但从现在就开始这么做,总比永远都不做好。
尽管经常有时 “没有做” 反倒比 “现在立马做“ 结果要好。
如果一个实现不容易解释,那么它肯定是个坏主意。
如果一个实现很容易解释,那么它也许是个好主意。
就像命名空间就是一个绝妙的想法,应当多加利用。
同样问题,用不同的语言解决代码量差距还是很大的,一般情况下Python的代码会更简洁,人生苦短,我用Python。
Python是开源的,免费的,兼容众多平台并且不断再改进。
Python提供非常完善的标准库和第三模块,覆盖了网络、文件、GUI、数据库、文本等大量内容,许多功能不必从零编写,直接使用即可。
Python采用强制缩进的方式使得代码具有较好的可读性。
Python可扩展、可嵌入。如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用C或C++编写,然后在Python程序中使用。也可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
Python能应用于什么?
Linux系统编程、web开发、网络爬虫、数据科学(机器学习、数据分析和数据可视化)、游戏开发、自动化脚本等。
领取专属 10元无门槛券
私享最新 技术干货