learnpython(未整理的内容)

了解python

1.python -编译->字节码-解释字节码,字节码是跟平台无关的(c的完全编译->二进制代码,intel芯片的指令)所以比c,c++慢,这也是python最大的缺点了。

2.python解释器,代码-解释器-计算机硬件(安装py之后,有一个解释器跟库,所以需要运行纯py代码,必须安装解释器,解释器就是运行python程序的程序

3.编译是一个简单的翻译的步骤,每条源码转为一条条字节码,字节码无关平台,运行比源码快,解释器将字节码解释运行。

1)如果py有读写权限。那么会把解释出来的字节码保存在pyc文件里面。没发生改变的话,就直接运行pyc文件。这是一种启动速度的优化,减少了解释的步骤。检查源文件跟字节码的时间戳,进行对比来决定是否重新解释。

2)如果没有读写权限,那么会把字节码存在内存进行运行,然后程序结束后简单丢弃

3)字节码在虚拟机中运行

源代码->字节码->PVM(虚拟机)->                                                                                                                                                                            cpu

4.python只拥有运行时候,所有的工作都是在运行的时候做的,建立函数,类的操作,连接模块。

5.CPython指的是,用c语言编写的python软件, JPython是java写的

6.pyinstaller 生成自安装的二进制文件,exe 将代码虚拟机器

Python的对象类型

1.python是动态类型(自动跟踪你的类型而不是要求声明),但是它也是强类型语言(只能对一个对象进行合适该类型的有效操作)

2.列表解析表达式[row[1] for row in M if row[1] % 2 ==0]

3.列表解析回比for快2倍左右(TODO测试)

4.元组提供了一种不可变约束性

5.检查对象类型 1.if type(L) == type([])  2.if type(L) == list  3.if isinstance(L, list)

数字

1.32位整形,跟无限长整形,可以通过后面加L,l来变成长整形,当超过32位的时候,会自动转为长整形。

2.bin(1<<2) 显示为bx100

3.小数对象可以修正浮点数运算精确度不够的问题 Decimal('0.1')

4.Fraction(2,3) 分数,Fraction('2', '3') 字符串也可以生成

5.True,跟False是1,0对象的子类,实际上就是数字,但是做了独特的显示,输出。但是True+1 会输出2

动态语言特点:

1.类型是对象的,而不是变量的,变量只是引用了对象。对象基本头部是类型跟引用计数。gc相关可以再总结 

字符串:

1.r"(- -)/" 表示为原始字符串,不用转义

2.s = ‘a b c’ len(s) = 5 a, 换行符,b,缩进符,c 转义反斜杠是不跟字符串一起存储在内存中的

3.字符串翻转 s[::-1]

元组:

为什么要元组,元组提供了一种规则完整性,确保不会被其他引用所改变。但是元组里面的元素如果是列表,是可以改变的,元组的元素的引用不能变。

print(x, end = " ")

生成器跟迭代器:

迭代器是一个类似列表但是只提供了next接口进行迭代的结构

yield返回的是一个生成器,有迭代协议,可以进行迭代使用

map:

lst1 = [1,2,3] lst2 = ["one","two","three"]

print dict(map(None, lst1, lst2)) 

{1:"one",2:"two",3:"three"}

内置作用域  2.6 true false str list都在里面

嵌套作用域 , 嵌套函数,lambda 可变变量才能被子函数改变,不变变量只是只读,

全局变量 == 模块的属性

lambda 一个表达式,不是语句,匿名的函数,函数速写,推迟执行,替代def函数 常用于回调注册, 或者简单地内联代码,不要过度使用,def总能替代它

;callfunc  = {

  1:(lambda x, y: 1, 2)

继承搜索树,

对象->类->超类

方法是拥有特殊第一参数的函数,函数方法。是类对象的拥有的。也是面向对象的一个设计。因为传入的第一参数是实例对象,对实例对象做处理。故称面向对象

静态方法 staticmethod

类方法 classmethod

类装饰器

原文地址:https://www.cnblogs.com/leilei-weapon/p/13592047.html