Python 基础总结

python数据类型
整数
  可以处理任意大小的正负整数
用16进制表示整数  加0x 前缀
浮点数
   就是小数,对于很大的浮点数要用科学计数法表示 10用e替代1.23*10^6  等于 1.23e6

长整型
在整数最后是大写或小写L

复数
复数由实部和虚部构成    a+bj  或  complex(a,b)
字符串
  用‘’或“”括起来的
Boolean
    只有True 或False
    可以用and  or  not进行运算
空值
   None 
Collections模块
    Counter ------计数器,用于统计元素数量
    OrderDict ----有序字典
    defaultdict-----值带有默认类型的字典
    namedtuple------可以命名的元组,通过名字访问元素
    deque------双向队列,两头都可以放,也可以取


print语句
    >>>是python解释器的提示符
   当要跟多个字符串输出时“,”用逗号隔开就行
    对于计算整数时  可以直接在 print 语句中进行 + - * /
注释用#开头

变量
    变量名必须是大小写英文、数字、下划线   且 开头不能用数字
=这是赋值语句   同一个变量可以反复赋值  可以是不同类型

定义字符串
    字符串本身包含‘  时  我们用“ ”括起来   反之用另一个
  如果 这两个都有   我们可以用‘\’转义符    不计入字符串内容

raw字符串和多行字符串
   可以再字符串前面加 r   就不用转义了
表示多行字符串  '''...'''  

Unicode字符串
     字符串中有中文在字符串开头加 u
整数和浮点数
       整数的结果时精确的   浮点数的值是近似值
Boolean类型
     它把 0、空字符串''、None  看成False  其余True
     在涉及 and  or  计算时   存在:短路原则
创建List  
    有序集合   用中括号[ ]  
    按索引访问list    索引从0开始   注意不要越界
    倒序访问list      倒数第一 -1
    添加新元素 append() 方法 追加到list末尾
    插入insert()接受两个参数  第一个索引号  第二个是待加元素
    删除元素pop()方法 总是删掉最后一个元素     pop(2)删除指定索引的元素
   替换元素   在指定索引赋值  替换掉原来的(也可以删除再加)

创建tuple
    用小括号()  访问元素 写要访问的元素索引t(1)
    创建     0个元素直接t=()    一个元素的t=(1,)  为了防止歧义 加','逗号
 可变的tuple   在元素中加list对象    因为list是可变的
if语句
    要注意python代码的缩进规则     并且   要用':'表示代码块开始
if-else     if 为True 执行   否则else
 if-elif-else  多层判断 原理一样
for循环
    写法 for  a  in  L:      
while循环
   先判断在执行循环体      必须要有退出条件
   break退出循环
   continue继续循环    跳过后续   继续下一次
   多重循环   嵌套使用
dict
     用大括号{}      按照key:value形式     len()函数可以计算集合大小
访问dict
       d[key] 查找value       不同于list用索引返回元素   
      用之前要 进行if判断      也可以d.get('Adam') 自身提供的get()        在key不存在时  返回None
       dict查找速度快     无论多少元素查找速度一样    但是缺点是占     内存       比较浪费资源     list正好相反
     dict中key不能重复   存储的key -value对 没有顺序     并且key是不可变的
更新dict
      d['adam'] =60
遍历dict    直接用for循环

set 和list比较像 但是set 元素 没有重复  而且是无序的
访问set   就是判断这个元素在不在set里
set特点   对象不可变
遍历set   for循环   但是输出结果的顺序可能不同
更新set   要么添加   要么删除
如果添加的元素已经存在  不会加进去
删除用remove()  但是要判断元素是否存在   否则会报错

函数 --抽象出来的运算
调用函数---要知道函数名称和参数  绝对值函数abs()、比较函数cmp(x,y)    x<y    -1   x=y    0   x>y  1    int()转换成整数  str()转换成字符串

编写函数   def语句   依次函数名--括号---括号中参数和冒号   然后在缩进块中编写函数体    return返回

返回多值
#math    提供和sin()  cos()    要用import引用
import math
def move(x, y, step, angle):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
递归函数   阶乘fact(n)
   使用递归函数要注意防止栈溢出、

定义默认参数   int()   可传入两个参数      
函数的默认参数作用是简化调用    用传入的额外参数覆盖默认参值
默认参数只能定义在必需参数的后面

定义可变参数
def fn(*args)   参数名字前加*
*args用作传递非命名键值可变长参数列表(位置参数)
**kwargs用作传递键值可变长参数列表
对list进行切片
    L[:] 默认从索引0开始 到末尾
    L[::2]会每两个元素 取一个
 倒序切片
 L[-1] 倒数第一个
L[-10::2] 从倒数第一个  每隔2个取一个
字符串切片      upper()方法 把字符变成大写字母

迭代  
for循环不仅可以用在list 或tuple  还可以用在其他任何迭代对象上

索引迭代   ---enumerate()   可以拿到索引
zip()函数可以把两个list 变成一个
range()函数 范围值

dict的value   可以通过values() 转换成list  等到 和itervalues()方法得到   会比values()省去生成list的内存
 迭代dict的key和value -----用items()方法返回的值  
iteritems()不会吧dict转成list  不占用额外内存

生成列表
[x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

range(1,100,2)  隔2个输出

复杂表达式---join()方法可以把list拼成一个字符串
  d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
    if score < 60:
        return '<tr><td>%s</td><td style="color:red">%s  </td></tr>' % (name, score)
    return '<tr><td>%s</td><td>%s</td></tr>' % (name,score)
tds = [generate_tr(name,score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'

条件过滤
for循环后面还可以加if判断
[x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

多层表达式
print [a*100+b*10+c for a in range(1,10) for b in range(0,10) for c in range(0,10) if a==c]

python内置函数
divmod() ----得到商和余数

python面向对象
self---类的对象,必须是第一个参数
'.' 来访问属性

python对象销毁----垃圾回收


 issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup)
isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName( 对象名._类名__私有属性名 )访问属性

python 多线程

  • run(): 用以表示线程活动的方法。
  • start():启动线程活动。
  • join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
  • isAlive(): 返回线程是否活动的。
  • getName(): 返回线程名。
  • setName(): 设置线程名。

    注意: 其中的高级特性没有怎么总结,那一块单独处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值