Python——知识点小结

优雅 明确 简单  (解释执行 不需要编译 速度慢 代码少)
适合:
1.开发web网站和各种网站服务
2.系统工具和脚本
3.把其他语言开发的模块包装起来 方便使用

知识点
1.单行注释:以#开头, 多行注释:'''   ''' 
2.中文支持: #coding=utf-8    或者  #-*- coding=utf-8 -*-
3.标示符的规则:由字母、下划线和数字组成,且数字不能开头
4.格式化输出: print("我的姓名是%s,年龄是%d"%(name,age))
5.输入: Python3使用 input 接受的输⼊必须是表达式,Python2使用 raw_input
6.切片:[起始位置:终止位置:步长]   默认步长为1
7.字符串: split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
8.列表:添加元素(append() insert() extend()),删除元素(pop() remove() del x[下标]),改()
9.排序: 逆置reverse()  正序sort()  倒序:sort(reverse=True)
10.元组:元组与列表类似,不同之处: 元组的元素不能修改,元组使用小括号,列表使方括号, aTuple = ('et',77,99.9)
11.字典:info = {"name":"xiaoming", "id":"100"}
12.可变类型与不可变类型: 
   可变类型,值可以改变:列表 list, 字典 dict
   不可变类型,值不可以改变:数值类型 int, long, bool, float,字符串 str,元组
   num+=num  并不等价于 num=num+num
13.函数:
   1)定义参数表示形参, 调用参数表示实参
   2)可以返回多个值(元组)
   3)带有默认值的参数一定要位于参数列表的最后面
   4)不定长参数:def fun([formal_args,] *args, **kwargs):   //args为元组,kwargs为字典
        >>> c = (3, 4, 5)
        >>> d = {"m":6, "n":7, "p":8}
        >>> fun(1, 2, *c, **d) # 注意元组与字典的传参形式
   5)Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量本身;
      对于可变类型来说,函数体中的运算有可能会更改传入的参数变量;
14.全局变量:需要修改使用global
15.Lambda函数:接收任何数量的参数但只能返回一个表达式的值,匿名函数不能直接调用print,因为lambda需要一个表达式,举例:lambda x: x + 1
16.交换两个变量:三种,第一种:中间变量;第二种:一加一减; 第三种:a,b = b,a
17.类:定义有两种,经典类和新式类Car(object),命名规则按照"大驼峰", 拥有属性和方法
   1) 魔法方法:__xxxx__(self),定义__str__(self)方法,当使用print输出对象时,就会打印从在这个方法中return的数据
   2) self:可以理解为自己,相当于C++中的this指针
   3) 每个方法第一个参数都需要是self
   4) Python中没有像C++中public和private这些关键字来区别公有属性和私有属性
   5) 方法和属性区分:加了2个下划线'__',表明该方法或者属性是私有,否则为公有
   6) 类属性:类属性属于类对象,并且多个实例对象之间共享一个类属性;
   7) 实例属性:和具体的某个实例对象有关系,并且一个实例对象和另外一个实例对象是不共享属性的;
   8) 类方法:@classmethod 第一个参数是类对象cls,通过cls引用的必定是类对象的属性和方法,而实例方法self可能引用的是类属性或者实例属性
   9) 静态方法:@staticmethod 不需要额外定义参数,静态方法中引用类属性的话,必须通过类对象来引用
   
18.列表生成式:a = [i for i in range(1,10)]
19.集合set:没有相同的数据,{},去重,为集合,强转为list
20.eval(): 函数用来执行一个字符串表达式,并返回表达式的值
21.is:是比较两个引用是否指向了同一个对象(引用比较)
22.==:是比较两个对象是否相等
23.动态语言:可以在运行的过程中修改代码; 静态语言:编译时已经确定好代码,运行过程中不能修改,__slots__变量,来限制该class实例能添加的属性
24.浅拷贝:对于一个对象的顶层拷贝,意思就是拷贝了引用,没有拷贝内容
   深拷贝:对一个对象所有层次的拷贝(递归)  copy.deepcopy(a), 浅拷贝对不可变类型和可变类型的copy不同
25.左移: << 左移1位相当于乘以2,用途:快速计算一个数乘以2的n次方 (8<<3 等同于8*2^3)
26.&按位与:全1才1否则0,|按位或:有1就1, ^按位异或:不同为1,~ 取反(正数的原码=反码=补码)
    正数:原码 = 反码 = 补码
    负数:反码 = 符号位不变,其他位取反补码 = 反码+1
27.Iterable对象:凡是可作用于for循环的对象都是Iterable 类型;
   迭代器Iterator:可作用于next()函数的对象都是Iterator 类型;
   集合数据类型如:list、dict、str等是Iterable但不是Iterator ,不过可以通过iter()函数获得一个Iterator对象
28.闭包:在函数内部再定义一个函数,并且这个函数用到了外边函数的变量;
29.装饰器:@函数名 是python的一种语法糖,一般情况下为了让装饰器更通用,可以有return
    1) 引入日志
    2) 函数执行时间统计
    3) 执⾏函数前预备处理
    4) 执⾏函数后清理功能
    5) 权限校验等场景
    6) 缓存    
30.生成器:一遍循环一边计算的机制。函数中有yield,生成一个对象,使用一个变量接收,使用next()
31.开放封闭规则:封闭:已实现的功能代码块;   开放:对扩展开放
32.小整数对象池:[-5, 257)这些整数对象是提前建立好的,常驻内存,不会被垃圾回收;
   大整数对象池:每一个大整数,均创建一个新的对象,不共用内存,引用计数为0,销毁;
   intern机制:单个单词,不可修改,默认开启intern机制,共用对象,引用计数为0,则销毁;
               字符串(含有空格),不可修改,没开启intern机制,不共用对象,引用计数为0,销毁;
33.GC垃圾回收:引用计数机制为主,标记-清除和分代收集两种机制为辅的策略;
    引用计数机制,缺点:无法解决循环引用的问题;
    有三种情况会触发垃圾回收:
    1).调用gc.collect(),
    2).当gc模块的计数器达到阀值的时候。
    3).程序退出的时候
34.HTTP发布:python -m http.server 8000
   
   
   
   
   

发布了84 篇原创文章 · 获赞 2 · 访问量 5240

猜你喜欢

转载自blog.csdn.net/finghting321/article/details/105123731