Python
语言类型
高级语言:接近人类自然语言和数学语言的语言
低级语言:接近机器的语言
高级语言和低级语言之间需要一个转换的工具:编译器,解释器。
编译型语言:把源代码转换成目标机器的CPU指令,运行效率相对较高。C、C++等。
解释型语言:将源代码转换为字节码,运行在虚拟机上,解释器执行中间代码,运行效率相对较低。Java、Python、C#等。
Python属于动态强类型语言
动态编译语言:不用事先声明类型,随时可以赋值为其他类型
静态编译语言:声明变量类型后将不能再改变类型
强类型:不同类型之间操作 必须先强制类型转换为同一类型
弱类型:不同类型之间操作自动进行隐式转换
Python版本
- 2.x 最终版本 2.7 即将停止支持
- 3.x 版本目前已经发展到3.7
2.x和3.x的区别
- 语句函数化,如print(1,2)在2.x和3.x中分别为打印一个元祖和打印两个参数
- /在2.x和3.x中分别为整除和自然除
- 2.x中raw_input在3.x中变更为input
- rouund函数.5变为取最近的偶数
- 3.x字符串统一使用Unicode
- 异常的捕获、抛出的语法改变。
- 3.x不区分短整型和长整型
Python解释器
- CPython
C语言开发的Python解释器,支持的库较多,一般均使用CPython。 - IPython
交互式增强版 CPython - PyPy
Python写的Python解释器,优点支持JIT动态编译技术,可以在运行中进行程序修改,但因支持的库较少,所以目前使用人数较少,但仍有不少关注度。 - Jython
Python源代码编译成Java字节码,运行在JVM上。 - IronPython
Python源代码编译成.Net字节码,运行在.Net平台解释器。
基础语法
- 转义
\t制表符
\r回车
\n换行
\换行符
前缀r 把里面的所有字符当普通字符对待
使用四个空格缩进
path1='c:\nt'
print(path1)
c:
t
path2=r'c:\nt'
print(path2)
c:\nt
path3='c:\\nt'
print(path3)
c:\nt
- 标识符
大小写敏感
赋值即定义,无法定义常量
只能是字母,数字,下划线,不能以数字开头
建议不使用关键字字符和字母开头
整除结果负数向下取整
- 进制
常见进制有二进制、八进制、十进制、十六进制。目前主要应该掌握二进制和十六进制。
&位与:按位相乘 n&1 偶数0 奇数1
|位或:按位相加 不进位
^异或:相异出1,相同出0,同或反之
~按位取反
<<n 乘2^n
>>n 除以2^n
查看引用计数
print(sys.getrefcount(变量))
gc 垃圾回收(自动适时清理 )
分支结构只能进一个分支
0xn 16进制
0on 8进制
0bn 2进制
原码
5=>0b101 1=0b1 -1=>-0b1 bin(-1)=-0b1
反码
正数的反码与原码相同,负数的反码符号位不变其余按位取反
补码
正数的补码与原码相同,负数的补码符号位不变其余按位取反后+1
补码=取反+1 补补得原
import math
math.ceil() 向上取整
math.floor() 向下取整
round() 四舍六入 五取最近偶数
// 向下取整
int() 截取整数部分
0bn二进制 0on八进制 0xn十六进制
type()返回类型
isinstace(数据,类型) 可以判断子类