Python入门篇,,Python历史19


Python历史

1989年,一个无聊的圣诞夜晚,荷兰人Guido写了Python,以他喜欢的喜剧名《Monty Python's flying Circus》命名

Python版本

2.X发展到了2.7

3.Xs始于2008年,3.5发布于2015年9月,3.6发布于2016年12月,3.7发布于2018年6年6月

2.x和3.x区别

语句函数化,例如print(1,2)打印出1 2,但是2.x中意思是print语句打印元组,3.x中意思是函数的2个参数

整除,例如1/2和1//2,3.x版本中/为自然除

3.x中raw_input重命名为input,不再使用

raw_input

round函数,在3.x中i.5的取整变为距离最近的偶数

字符串统一使用Unicode


异常的捕获、抛出的语法改变

编程基础

程序:一组能够让计算机识别和执行的程序

电子计算机:能够执行程序的机器

计算机发展的两大人物:

艾伦.麦席森.图灵:被称为计算机之父

冯.诺依曼:提出了一二进制为数字计算机的数制基础,计算机按照程序顺序执行,计算机应该有五大部件

冯诺依曼体系架构

计算机应该由五大部件组成:

CPU:由运算器和控制器组成

运算器:完成各种算数运算,逻辑运算,数据传输等数据加工处理

控制器:控制程序的执行

CPU中还有寄存器和多级缓存

存储器:用于记忆程序和数据,例如内存

输入设备:将数据货这程序输入到计算机中,例如鼠标键盘

输出设备:将数据货程序的处理结果展示给用户,例如显示器,打印机

计算机语言:人与计算机交互的语言

低级语言:面向机器的语言,包括机器语言、汇编语言

高级语言:接近自然语言和书数学语言的计算机语言。 高级语言首先要书写源程序,通过编译程序把源程序准换成机器指令的程序

高级语言和低级语言之间需要一个转换的工具:编译器、解释器

C,C++等语言的源代码需要本地编译

Java、Python、C#的源代码需要被解释器编译成中间代码(Bytecode),在虚拟机上运行

编译语言:把源代码编译后转换成目标机器的CPU指令

解释语言:解释后转换成字节码,运行在虚拟机上,解释器执行中间代码(JVM,PVM)

高级语言的发展

非结构化语言

编号或标签,GOTO,子程序可以由多个入口和出口

有分支,循环

结构化语言

任何基本结构只允许是唯一入口和唯一出口

顺序、分支、循环,废弃GOTO

面向对象语言

更加接近人类认,万事万物抽象成对象,对象间关系抽象成类和继承

封装,继承,多态

函数式语言

程序Programm

程序=算法+数据结构

数据是一切程序的核心

数据结构是数据在计算机中的类型和组织方式

算法是处理数据的方式,算法有优劣之分

写程序需要注意事项

理清数据理清处理方法把数据设计转换成数据结构,把处理方法转换成算法用设计范式来进行程序设备世间程序皆有bug但要会debug

python解释器

官方CPython:C语言开发,最广泛的Python解释器

IPython:叫哥交互式,功能增强的Cpython

PYPY:Python语言写的Python解释器,JIT技术,动态编译python代码

Jython:Python的源代码编译成Java的字节码,跑在JVM上

IronPython:与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码

python基础语法(部分)

转义序列

\\ \t \r \n \' \"

前缀r,把里面的所有字符当普通字符对待

续行:

在行尾使用\

如果使用各种括号,括号内是一个整体,内部不用\

标识符:

只能是字母,下划线和数字

不能以数字开头

不能是python关键字,exp:def,class不能作为标识符

python对大小写敏感

约定:

不允许使用中文

不允许使用歧义单词,exp:class_

在python中不要随便使用下划线开头的标识符

常量:

一旦赋值就不嫩改变值的标识符

python中无法定义常量 字面常量:

一个单独的量,如 12,"abc" 变量:

赋值后可以改变值的标识符


Python的语言类型

python是动态,强语言类型

静态编译语言

事先声明变量类型,类型不能再在改变

编译时检查

动态编译语言

不用事先生命类型,随时可以赋值为其它类型

编程时不知道是什么类型,很难推断

强类型语言

不同类型之间操作,必须先强制类型装换为同一类型.exp:print('a'+1)会报错,只能是print('a'+'1')

弱类型语言

不同类型之间可以操作,自动隐式转换exp:JavaScript中console.lg(1+'a')

原码,反码,补码,负数表示法

原码: 5 => 0b101,1 => 0b1,-1 => -0b1,bin(-1)

反码:正数的反码与原码相同,负数的反码符号位不变,其余按位取反

补码:正数的补码与原码相同,负数的补码符号位不变其余按位取反后 +1(负数补码的补码就是原码)

负数表示法

负数在计算机中使用补码存储,-1 的补码为1111 1111

5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b111111111.~12 = -13


表达式Expression:由数字,符号,括号,变量等的组合

算数表达式

逻辑表达式

赋值表达式:python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

内存管理

垃圾回收机制 GC

python编程中一般无需关心变量的存亡,一般也不用关心内存的管理

Python使用对象引用计数记录所有对象的引用数

当对象引用数变为0,它就可以被垃圾回收 GC

有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求.exp:内在正在整理释放,这时无法使用这块区间的数据

False等价布尔值,相当于bool(value)

1.空集合

- 空字符串""

- 空元祖 ()

- 空列表 []

- 空字典 {}

2.None对象

3.0


Python入门篇

评论关闭