Python基础-语法知识
——编程语言的发展史
-
机器语言
- 优点:执行速度够快
- 缺点:开发效率非常低
-
汇编语言
- 优点:执行效率相较于机器语言略低
- 缺点:开发效率相较于机器语言略高
-
高级语言
- C、C++、C#、java、PHP、python、go都属于高级语言
- 编译型:C、C++、PHP
- 解释性:C#、python、java(先编译后解释)
-
开发效率
- (解释型 > 编译型)> 汇编语言 > 机器语言
-
执行效率
- (解释型 < 编译型)< 汇编语言 < 机器语言
-
跨平台
- 解释型 > 编译型
——python解释器
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器
-
版本
- python 2.*
- python 3.*
-
种类
- IPython:是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互式上有所增强,但是执行python代码的功能和CPython是完全一样的。
- Jython:原名JPython;Java语言实现的Python。Jython可以直接调用Java的各种函数库。
- PyPy:是python开发者为了更好地Hack Python而用Python语言使用的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译,因此运行速度比Cpython还要快
- IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的python解释器,可以直接将Python代码编译成.Net的字节码
-
执行代码的两种方式
- 交互式:cmd命令,编写python代码,即写即执行。缺点:代码易丢失
- 命令行执行:编写好python文件,cmd命令执行。
- 注意:python文件的后缀名py没有实际意义,是python程序员约定俗成的文件,表示该文件是python文件,实际上就是文本文件。
-
IDE工具—pycharm
- 专门用于编写python代码的集成代码工具
- 优点:提升开发效率
- 缺点:比较占用内存的资源
——注释—代码之母
- 单行注释:用【#】表示,快捷键是:Ctrl键 + / 键。取消注释也是Ctrl键 + / 键
# eg: # 用于获取所有关键字 for i in keyword.kwlist: print(i)
- 多行注释:用【'''…'''】或【"""…"""】表示,输入三次单引号或三次双引号(英文键盘下)都可以
''' eg: 用于获取所有关键字 ''' for i in keyword.kwlist: print(i)
或者
"""
eg:
用于获取所有关键字
"""
for i in keyword.kwlist:
print(i)
——变量
- 变:事物的庄客是可以变化的;量:描述事物的状态
- 变量用于存取事物的变化
- 变量的使用
- 变量名 = 变量值
# = 不是数学定义的等于,在这里是指将10赋值给了变量num num = 10
-
-
变量的命名规范
- 只能由字母、数字、下划线组成,一定不要使用中文
- 不能由数字开头
- 区分大小写
-
变量的命名风格
- 驼峰体 eg:UserAge = 18
- 下划线体(使用该种方式) eg:user_age = 18
-
变量的三大特性
- value(值)
- id(内存地址)
- type(数据类型)
-
name = "dawn" print(name) # value,输出的是name的值 print(id(name)) # id,输出的是name的内存地址 print(type(name)) # type,输出的是name的数据类型 #输出结果 dawn # value,输出的是name的值 2281405883504 # id,输出的是name的内存地址 <class 'str'> # type,输出的是name的数据类型
——常量
- python中是没有常量
- 根据实际需要,python程序员约定俗成,变量名中所有字母大写的情况下,默认为常量。通常情况,不可更改
——内存管理
-
小整数池:
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数池的定义是 [-5, 256], 这些整数对象是提前建立好的,不会被垃圾回收。
所有位于[-5, 256]这个范围内的整数使用的都是同一个对象。
>>> a = 256 >>> b=256 >>> print(id(a)) 140703921377520 >>> print(id(b)) 140703921377520 >>> a = -6 >>> b = -6 >>> print(id(a)) 1742149284848 >>> print(id(b)) 1742119225520 >>> c = -5 >>> d = -5 >>> print(id(c)) 140703921369168 >>> print(id(d)) 140703921369168
——垃圾回收机制
- 引用计数:当内存中的值引用计数为0,垃圾回收机制就会自动清除
- 标记清除:当应用程序将内存撑满的时候,会自动停止,清除垃圾
- 分代回收:在历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。