python入门

开源项目地址

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++、)。

公众号 全战开花

获取更多技术干货

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理