Python基础入门01

引子

​ 基于上一篇所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。

​ 本篇的主题是先带大家了解下编程语言,然后重点介绍python这门编程语言

编程语言的发展史

1、机器语言

优点:执行效率够快

缺点:开发效率非常低

2、汇编语言

优点:执行效率快,相较于机器语言慢一点

缺点:开发效率低,相较于机器语言快一点

3、高级语言

(C、C++、C#、Java、python、PHP、go等)

优点:开发效率高

缺点:执行效率低

高级语言又分为编译型和解释型

编译型:写完代码需要编译成计算机识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件。(类似于谷歌翻译)

常见的语言有:C语言,C++、go 

优点: 编译一次之后就可以拿着结果重复运行,而无需再次翻译,执行效率高于解释型

缺点: 编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到另外一个平台使用,即无法跨平台

解释型:类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行。

常见的语言有:python、C#

优点: 代码运行是依赖于解释器,不同平台有对应版本的解释器,所以代码是可以跨平台运行

缺点: 每次执行都需要翻译,执行效率低于编译型

相比较

开发效率

(解释型>编译型)>汇编语言>机器语言

执行效率

(解释型<编译型)<汇编语言<机器语言

跨平台

解释型>编译型

学习难度

机器语言>汇编语言>高级语言

python编译器

Python解释器有哪些种类?

官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。Python解释器的一些种类如下,简单了解即可

# Jython
JPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。

# IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

# PyPy
PyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。

# IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

python编译器的安装和pycharm的安装详见https://www.cnblogs.com/aheng/p/11754307.html

python版本分类:

python2.X(2020年以后就不会更新了)

python3.X

python执行代码的两种方式

1、交互式:有来有往

2、命令行执行

python文件约定俗成将后缀名定义于.py 其实.py单纯就是文本文件(无所谓什么后缀,因为都要用编译器编译)只要不改里面的源码就没事。

IDE工具pycharm

pycharm是专门编写python代码的软件

优点:提升开发效率

缺点:比较占用内存资源

注释

作为程序员要养成写注释的好习惯    注释是代码之母

单行注释:#

多行注释:'''  '''(双引号,单引号都可以)

快捷键:Ctrl+/

python变量

1、什么是变量?

变:事物的状态是可以变化的

量:描述事物的状态

2、没有变量行不行

那肯定不行啊

3、怎么用变量

变量名+赋值符号+变量值

比如:age = 18

变量名的命名规则

1、只能有字母、数字、下划线组成

2、不能用中文(用了中文第二天就可以离职了)

3、不能以数字开头

4、区分大小写

变量名的命名风格

1、驼峰体

例如:UserAge = 18

2、下划线体

user_age = 18

变量的三大特性

1、值    value

2、地址      id

3、类型     type

常量

什么是常量?

常量指在程序运行过程中不会改变的量

为什么要有常量?

 在程序运行过程中,有些值是固定的、不应该被改变,比如圆周率 3.141592653...

怎么使用常量?

在Python中没有一个专门的语法定义常量,约定俗成是用全部大写的变量名表示常量。如:PI=3.14159。所以单从语法层面去讲,常量的使用与变量完全一致。

内存管理

小整数池:

id(内存地址)相同,变量名不同。有利于计算机的内存优化。范围是(-5 —256)超过这个范围的id地址就不会相同了

垃圾回收机制

1、引用计数:当内存中的值引用计数为0,垃圾回收机制就会自动清

2、标记清楚:当应用程序将内存撑满的时候会自动停止,清除垃圾

3、分代回收:在历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低,具体实现原理如下:

分代指的是根据存活时间来为变量划分不同等级(也就是不同的代)

新定义的变量,放到新生代这个等级中,假设每隔1分钟扫描新生代一次,如果发现变量依然被引用,那么该对象的权重(权重本质就是个整数)加一,当变量的权重大于某个设定得值(假设为3),会将它移动到更高一级的青春代,青春代的gc扫描的频率低于新生代(扫描时间间隔更长),假设5分钟扫描青春代一次,这样每次gc需要扫描的变量的总个数就变少了,节省了扫描的总时间,接下来,青春代中的对象,也会以同样的方式被移动到老年代中。也就是等级(代)越高,被垃圾回收机制扫描的频率越低
分代回收

猜你喜欢

转载自www.cnblogs.com/aheng/p/11777166.html