数据类型
- Numbers(数字) int -有符号整型 / long-长整型 / float-浮点型 / complex-复数
- String(字符串)
- List(列表) []
- Tuple(元组) ()
- Dictionary(字典) {}
数据类型转换
数字:int(x),long(x),float(x),complex(x)
字符串:str(x):x 转换为字符串 repr() :x 转换为表达式字符串
对象:eval(str):用来计算在字符串中的有效Python表达式,并返回一个对象
元组:tuple(s):将序列 s 转换为一个元组
列表:list(s):将序列 s 转换为一个列表
集合:set(s) 转化成可变集合 frozenset(s):转换不可变集合
字典:dict(d) :d 必须为序列(key,value)
chr(x):整数转换为一个字符
unichr(x):整数转换为Unicode字符
ord(x):字符转换为它的整数值
hex(x):整数转换为一个十六进制字符串
oct(x):整数转换为一个八进制字符串
变量赋值
变量名=值 a=1
多变量赋值 a=b=c=2 a, b, c = 1, 2, ‘john‘
运算符
算术运算符: +:加 -:减 *:乘 /:除 ** :幂 //:取整除
比较元算符:==:等于 !=:不等于 <>:不等于 >:大于 >=:大于等于 <:小于 <=:小于等于
赋值运算符:=:等于 +=: c+=b c=c+b -=:c-=b c=c-b *=:c*=b c=c*b /=:c/=b c=c/b %=:c%=b c=c%b **=:c**=b c=c**b //=: c//=b c=c//b
位运算符:& | ^ ~ << >>
逻辑运算符:and or not
成员运算符:in not in
身份运算符:is isnot
运算符优先级别
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND‘ |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。
为什么需要pyc文件
这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译python,从而防止不法分子的破解。