C、C++等语言的源代码需要本地编辑;
JAVA、Python、C#的源代码需要被解释器编译成中间代码,在虚拟机上运行;
编译语言,把源代码转换成目标机器的CPU指令;
解释语言,解释后转换成字节码,运行在虚拟机上,解释器执行中间代码。
Python的编辑器与解释器:
官方CPython:
用C语言开发,使用最频繁的Python解释器;
IPython:
一个交互式、功能增强的CPython;
PyPy:
Python语言写的Python解释器,最重要的技术是JIT,动态编辑Python代码。可以动态的直接编译成本地代码,适合当前操作系统或当前指令集的代码提高运行效率。因为本地执行代码比虚拟机执行效率高,理想状态比CPython快5倍;
Jython:
Python的源代码编译成Java的字节码,运行在JVM上
IronPython:
与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码。
一、Python的基础语法
1.注释: #标注的文本为注释内容
2.数字
2.1整数,不区分long和int
进制:16进制hex(10) 0xa、8进制oct(8) 0o10、2进制bin(2) 0b10
bool:True、False(首字母大写)
2.2浮点数 带小数点的数或科学计数法,不能表达所有的小数,只能指定精度近似表达,例如π。
1.2、3.1415、-0.12,1.46e9
2.3复数,1+2j
3.字符串
3.1使用’ “ 单引号和双引号,引用的字符的序列,例”abc”;
3.2‘’’和””” 单双三引号,可以跨行、可以在其中自由的使用单双引号,例’’’abc’’’;
3.3在字符串前面加上r或者R前缀,表示该字符串不做特殊处理。
4.转义字符
4.1\ ’ ” 例:print('a"bc',110,' ')
4.2前缀加r,即将当前所有字符串当普通字符对待,即转义符不转义。
5.缩进
5.1未使用C等语言的花括号,而是采用缩进的方式表示层次关系
5.2约定使用4个空格缩进,Tab键
6.续行
6.1在行尾使用搭回车
6.2如果使用各种括号,认为括号内是一个整理,内部跨行不用
7.标识符
a)一个名字,用来指代一个值;
b)只能字母、下划线和数字;
c)只能以字母或下划线开头;
d)不能是Python的关键字,例如def、class不能作为标识符;
e)Python是大小写敏感的,A和a为两个不同的标识符。
约定:
不允许使用中文;
不允许使用歧义单词,例如class_
在Python中不要随便使用下划线开头的标识符
8.1常量
一旦赋值就不能改变值的标识符;
Python中无法定义常量。
8.2字面常量
一个单独的量,例如10、”abc”
8.3变量
赋值后,可以改变值的标识符
二、Python的语言类型
三、运算符Operator
1.算数运算符
+ - * / % **
自然除/结果是浮点数,整除//。 注:2.x中/和//都是整除
2.位运算符
& | ~ ^ << >>
常用方式:乘除2的倍数,32//4对位操作相当于32>>2(每挪一位乘2 或除2)
进制:12,16进制hex(10) ’0xa’、8进制oct(8) ’0o10’、2进制bin(2) ’0b10’
3.原码、反码、补码,负数表示法
3.1原码
5=>0b101,1=>0b1,-1=>-0b1,bin(-1)
3.2反码
正数的反码与原码相同;负数的反码符号位不变其余位取反
3.3补码
正数的补码与原码相同;负数的补码符号位不变其余位取反后+1;
补码的补码就是源码;
3.4负数表示法
数字电路的CUP中的运算器实现了加法器,减法被转换成加法;
负数在计算机中使用补码存储,例如-1的补码为 1111 1111
例:5-1
5-1=>5+(-1)
5=> 0000 0101在计算机中使用存储为 0000 0101
-1=>1000 0001 负数在计算机中使用补码存储 即1111 1111
0000 0101 + 1111 1111=(0000 0001 + 1111 1111)+ 0000 0100=>4
例:~12 即12按位取反
0000 1100 二进制表达
1111 0011 按位取反 得到补码
1000 1101 补码的补码就是原码。即符号位不变,其余位取反再+1
=>-13
例:10^9 10^-9 异或 同或 ————未完待续!