python入门

69次阅读

共计 2102 个字符,预计需要花费 6 分钟才能阅读完成。

开源项目地址

GitHub 源码:https://github.com/371854496/…
你想要的知识文章实战项目都有噢!

一.python 的起源

python 的创始人 Guido van Rossum(吉多·范罗苏姆, 俗称‘龟叔’)。1989 年 为了打发无聊的圣诞节,龟叔决定开发一门新的语言 –python
python 崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。Life is shot, you need python. 人生苦短,我用 python。

二.python 优缺点

优点:
1. 简单易学:
python 阅读一个良好的 python 程序就感觉像是在读一篇文章一样。

2. 开发效率非常高:
python 有非常强大的第三方库,基本上你想通过计算机实现任何功能

3. 面向对象:
python 语言编程思想更加符合我们人的逻辑思维,而不用再像 C 语言那样去理 解计算机运行思维。并且无需考虑如何管理你的程序使用的内存一类的底层细节。更加注重我们的业务逻辑。

4. 免费、开源:
你可以自由的阅读它的源代码、对它做改动。python 希望由更加优秀的人来继 续改进和创造 python。

5. 可移植性:
由于它的开源本质,python 已经被移植在许多平台上(经过改动使它能够工作, 在不同平台上)。

6. 可扩展性:
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你 的部分程序用 C 或 C++ 编写,然后在你的 python 程序中使用它们。

7. 丰富的库:
python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文 档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系 统有关的操作。

缺点:

1. 运行速度慢:
python 的运行速度相比 C 语言确实慢很多,跟 JAVA 相比也要慢一些,但是在大 多数情况下 python 已经完全可以满足你对程序速度的要求,除非你要写对速度 要求极高的搜索引擎等,这种情况下,当然还是建议你用 C 去实现的。

2. 中文资料缺乏:
好的 python 中文资料屈指可数

3. 线程不能利用多核:
因为 GIL,python 只有一个 GIL,运行 python 时,就要拿到这个锁才能执行,在遇到 I /O 操作时会释放这把锁。如果是纯计算的程序,没有 I/O 操作,解释器会每隔 100 次操作就释放这把锁,让别的线程有机会 执行(这个次数可以通 sys.setcheckinterval 来调整)同一时间只会有一个获得 GIL 线程在跑,其他线程都处于等待状态
一. 如果是 CPU 密集型代码(循环、计算等),由于计算工作量多和大,计算很快就会达到 100,然后触发 GIL 的释放与在竞争,多个线程来回切换损耗资源,
所以在多线程遇到 CPU 密集型代码时,单线程会比较快
二. 如果是 IO 密集型代码(文件处理、网络爬虫),开启多线程实际上是并发(不是并行),IO 操作会进行 IO 等待,线程 A 等待时,自动切换到线程 B,
这样就提升了效率
三. 解决方法:
利用多进程,还有一种就是调用 C 语言的链接库。

补充知识:
什么是计算密集型任务,什么是 I / O 密集型任务?

计算密集型:
特点是要进行大量的计算,消耗 CPU 资源,比如计算圆周率、对视频进行高清解码等等,全靠 CPU 的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU 执行任务的效率就越低,所以,要最高效地利用 CPU,计算密集型任务同时进行的数量应当等于 CPU 的核心数。
计算密集型任务由于主要消耗 CPU 资源,因此,代码运行效率至关重要。Python 这样的脚本语言运行效率很低,完全不适合计算密集型任务。对于计算密集型任务,最好用 C 语言编写。

IO 密集型:
涉及到网络、磁盘 IO 的任务都是 IO 密集型任务,这类任务的特点是 CPU 消耗很少,任务的大部分时间都在等待 IO 操作完成(因为 IO 的速度远远低于 CPU 和内存的速度)。对于 IO 密集型任务,任务越多,CPU 效率越高,但也有一个限度。常见的大部分任务都是 IO 密集型任务,比如 Web 应用。
IO 密集型任务执行期间,99% 的时间都花在 IO 上,花在 CPU 上的时间很少,因此,用运行速度极快的 C 语言替换用 Python 这样运行速度极低的脚本语言,完全无法提升运行效率。对于 IO 密集型任务,最合适的语言就是开发效率最高(代码量最少)的语言,脚本语言是首选,C 语言最差。

三.python 应用场景

1.web 应用开发 众多大型网站均为 python 开发。
2. 科学计算、人工智能
3. 服务器软件(网络软件)
4. 操作系统管理、服务器运维的自动化脚本
5. 游戏

四.python 语言类型

编程语言分为编译型和解释型语言,python 属于解释型语言。

计算机不能直接理解高级语言,只能直接理解机器语言
所以必须要把高级语言翻译成机器语言, 计算机才能执行高级语言编写的程序。
解释性语言在运行程序的时候才会进行翻译。(如 python、HTML、XML 和 Javascript)
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成机器语言
(如 java、C/C++、)。

公众号 全战开花

获取更多技术干货

正文完
 0