7天内学完,2018年的python入门学习b站视频教学,粗略。同时在学习C++教学视频。
9月6日,在找python项目,准备做。
重新学习python巩固python,9月29日
恰当的格式,缩进问题;区分大小写;
行注释用#号,有效范围是一行;段注释用三个连续单引号’’’,两次
推荐一本书:《程序员修炼手册》http://www.cssxt.com/html/xlsc/#1F
守破离–学习方法
python程序由模块组成,一个模块对应一个python源文件,后缀名一般为“.py”
模块由语句组成,语句由表达式组成。
在python中,一切皆对象。
对象的本质:是一个内存块。每个对象由:ID标识:地址,type类型,value值。
变量是对象的引用。
变量位于栈内存,对象位于堆内存。
标识符:用于变量、函数、类、模块的名称。
字符串的本质是字符序列。python中,字符串不可变。
python不支持单字符串,单字符串也作为字符串使用。单/双引号。
python3使用16位的Unicode字符编码。
ord()将字符转化为编码;chr()将十进制数字转化为对应的字符;
bin;oct;hex;int。
整数缓存问题
字符串驻留机制
序列结构有:字符串、列表、元组、字典、集合。
对象的方法
内置函数的方法,返回一个迭代器对象的指针,不可重复迭代 None。区别。
元组是不可变序列。
字典是键值对的无序可变序列。
字典对象的核心是散列表。典型的空间换时间。
集合是无序可变,元素不能重复。集合底层是字典实现。
循环代码优化:
1.尽量减少循环内部的计算
2.尽量使用局部变量
其他优化手段:
1.连接多个字符串,尽量使用join
2.列表进行插入和删除,尽量在尾部进行
一个生成器只能用一次。生成器是可迭代的对象。
函数是可重用的程序代码块:
1.内置函数
2.标准库函数
3.第三方库函数
4.用户自定义函数
函数也是对象,可以作为参数,也可以作为返回值。
全局变量作用域为定义的模块,从定义位置开始到模块结束;
局部变量作用域为函数内部。
python中参数传递都是引用传递,分为两类:
1.对“可变对象”进行写操作,直接用于原对象本身。(字典、列表、集合、自定义的对象)
2.对“不可变对象”进行写操作,会产生一个新的对象空间,并用新的值填充这块空间。(数字,字符串,元组,function)
浅拷贝和深拷贝:浅拷贝是不拷贝原子对象,拷贝对象和原对象是独立的,浅拷贝时只是引用,发生在拷贝对象上的值事情会发生在原对象上。
传递不可变对象,如果发生拷贝,是浅拷贝。
位置参数;默认值参数;命名参数;
可变参数:*表示元组对象;**表示字典对象
强制命名参数。
LEGB规则:同名时参数值调用的优先级,由内而外。
类(对象的结构):方法(函数),属性(参数)。
方法由类创建的对象共享,属性由各自对象自己拥有。
类方法操作类属性。
dir可以显示对象的所有属性和方法。