Python 基础知识整理-1

数据类型

  • 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,从而防止不法分子的破解。

原文地址:https://www.cnblogs.com/Linc2010/p/8289153.html