本人从2019年中期开始接触Python,不过短短几天的时间就对它产生了浓厚的兴趣。可能就是这门语言就是来源于一部喜剧的命名,或许源于对周星驰喜剧的缅怀,再或者是想创作出自己生活中的喜剧。
由于是初学者就做了一下笔记,望朝着某个方向努力发展!
初识Python
(一)python 的起源
python 的创始人 Guido van Rossum(吉多·范罗苏姆,俗称‘龟叔’).1989 年 为了打发无聊的圣诞节,龟叔决定开发一门新的语言–python 1991 年 python 的一个版本诞生了 python 从诞生到现在大概有 30 年的时间了, 为什么直到最近几年 python 才被人们所熟知。
(二)python 优缺点
优点:
- 简单易学:
python 阅读一个良好的 python 程序就感觉像是在读一篇文章一样。 - 开发效率非常高:
python 有非常强大的第三方库,基本上你想通过计算机实现任何功能,python
官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行
开发,大大降低开发周期,避免重复造轮子。 - 面向对象:
python 语言编程思想更加符合我们人的逻辑思维,而不用再像 C 语言那样去理
解计算机运行思维。并且无需考虑如何管理你的程序使用的内存一类的底层细
节。更加注重我们的业务逻辑。 - 免费、开源:
你可以自由的阅读它的源代码、对它做改动。python 希望由更加优秀的人来继
续改进和创造 python。 - 可移植性
由于它的开源本质,python 已经被移植在许多平台上(经过改动使它能够工作
在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 python
程序无需修改就可以在下述任何平台上面运行。这些平台包括 Linux、Windows、
FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、
z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp
Zaurus、Windows CE 甚至还有 PocketPC、Symbian 以及 Google 基于 linux 开发的
Android 平台!
4 - 可扩展性
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你
的部分程序用 C 或 C++编写,然后在你的 python 程序中使用它们。 - 丰富的库
python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文
档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、
XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系
统有关的操作。记住,只要安装了 python,所有这些功能都是可用的。这被称
作 python 的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,
如 wxpython、Twisted(是用 python 实现的基于事件驱动的网络引擎框架)和
python 图像库等等。
缺点: - 运行速度慢
python 的运行速度相比 C 语言确实慢很多,跟 JAVA 相比也要慢一些,但是在大
多数情况下 python 已经完全可以满足你对程序速度的要求,除非你要写对速度
要求极高的搜索引擎等,这种情况下,当然还是建议你用 C 去实现的。 - 中文资料缺乏
好的 python 中文资料屈指可数 - 线程不能利用多核
这 是 python 被 人 诟 病 最 多 的 一 个 缺 点 , GIL 即 全 局 解 释 器 锁 ( Global
Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得
任何时刻仅有一个线程在执行,python 的线程是操作系统的原生线程。在 Linux
上为 pthread,在 Windows 上为 Win thread,完全由操作系统调度线程的执行。
一个 python 解释器进程内有一条主线程,以及多条用户程序的执行线程。即使
在多核 CPU 平台上,由于 GIL 的存在,所以禁止多线程的并行执行。
(三)应用场景 - web 应用开发
众多大型网站均为 python 开发。
豆瓣:公司几乎所有的业务均是通过 python 开发的
知乎:国内最大的问答社区,通过 python 开发(Quora)
春雨医生:国内知名的在线医疗网站是用 python 开发的
还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等
公司都在使用 python 完成各种各样的任务。
国外的网站:
谷歌:Google App Engine、code.Google.com、Google earth、谷歌爬虫、Google
广告等项目都在大量使用 python 开发
CIA:美国中情局网站就是用 python 开发的
NASA:美国航天局(NASA)大量使用 python 进行数据分析和运算
YouTube:世界上最大的视频网站 YouTube 就是 python 开发的
Dropbox:美国最大的在线云存储网站,全部用 python 实现,每天网站处理 10
亿个文件的上传和下载
5
Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全
部用 python 开发
Facebook:大量的基础库均通过 python 实现的
Redhat:世界上最流行的 Linux 发新版本中的 yum 包管理工具就是用 python 开
发的 - 科学计算、人工智能
python 由于具有编写简单、改动少等特点。特别适合用在机器学习方向。并且
提供了丰富的库。减少了学习人工智能的成本。
NumPy,SciPy,Matplotlib 可以让 python 程序员编写科学计算程序。 - 服务器软件(网络软件)
python 对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网
络爬虫。第三方库 Twisted[ˈtwɪstɪd] 支持异步网络编程和多数标准的网络协议(包
含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软
件。 - 操作系统管理、服务器运维的自动化脚本
在很多操作系统里,python 是标准的系统组件。 大多数 Linux 发行版以及
NetBSD、OpenBSD 和 Mac OS X 都集成了 python,可以在终端下直接运行 python。
有一些 Linux 发行版的安装器使用 python 语言编写,比如 Ubuntu 的 Ubiquity 安
装器,Red Hat Linux 和 Fedora 的 Anaconda 安装器。Gentoo Linux 使用 python 来编
写它的 Portage 包管理系统。python 标准库包含了多个调用操作系统功能的库。
通过 pywin32 这个第三方软件 包,python 能够访问 Windows 的 COM 服务及其
它 Windows API。使用 Ironpython,python 程序能够直接调用.Net Framework。一
般说来,python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几
方面都优于普通的 shell 脚本。 - 游戏
很多游戏使用 C++编写图形显示等高性能模块,而使用 python 或者 Lua 编写游戏
的逻辑、服务器。相较于 python,Lua 的功能更简单、体积更小;而 python 则
支持更多的特性和数据类型。
(四)python 语言类型
编程语言分为编译型和解释型语言,python 属于解释型语言。
首先我们需要知道我们在电脑上写的内容保存到电脑上的时候在磁盘上保存的
形式都是二进制 01010 这种形式来保存。当我们再次打开文件的时候,电脑会将
二进制数据转换为我们可以看懂的内容,呈现到我们面前。同样我们的代码都是
使用英文来编写的,当我们运行我们写的程序的时候,同样需要将我们写的代码
翻译成二进制数据给电脑运行。因此我们需要一个翻译工具将我们写的代码(源
码)翻译二进制文件。我们将这个翻译工具称之为编译器。
我们根据编译器对源码的翻译方式不同,把编译器分成了两种类型一种类型是编
译器,一种是解释器。
使用编译器编译的语言我们叫做编译型语言,使用解释器解释的语言叫做解释型
语言。
编译型语言执行过程:使用 java 开发完一个只有 3 行代码的程序,然后将这三
行代码统一交给编译器进行编译,编译成.class 文件,然后交给操作系统。
当再次执行这个程序的时候,就可以直接拿刚才生成的.class 运行。就不需要再
把源码翻译成.class 文件。因为翻译只做了一次,运行的时不要翻译,所以编译
型语言的程序执行效率高。
解释型语言执行过程:使用 python 开发了一个 3 行代码的源程序,当程序运行
的时候一行一行的给解释器,解释器一行一行的进行解释。这样解释性语言每执
行一次要翻译一次,效率表较低。
python 解释器
刚才我们已经了解到了 python 是一门解释性编程语言,我们需要下载 python 解
释器。
1.直接到官网 https://www.python.org/下载,安装就可以了。