python特色
简单,易学,自由开放
高级语言,不考虑内存使用等底层细节
跨平台
解释性语言(无需编译成二进制码。运行时转换成字节码,然后转换成电脑所用语言)
支持面向对象&面向过程
可扩展(部分使用c或c++),可嵌入(嵌入c/c++),库丰富
基础
终端解释器提示符>>>
注释是#
单引号和双引号没有区别
多行字符串是前后加三个引号'''
字符串不可变
format函数,对{}内进行变量替换
转义字符\,r表示不转义
标识符大小写敏感
用;分行,用\连接行
运算符
字符串也可以用*
用*代表x的y次方
用//代表整除,向下取整
比较符返回true或false
快捷方式:=之类用法
控制流
if/elif/else
while/else
for i in range(1,5)/else #这里range包含1不包含5
break
continue
函数
def
全局变量global
关键字参数
可变参数
默认return none
docstring:doc
模块
import
变量导入from .. import
dir:模块或函数中的所有属性和函数
包:带有init.py文件的文件夹
数据结构
列表[]:len,for in,append,sort
元组():不能编辑或修改
字典{}:就是hash
列表,元组,字符串都是序列,序列可索引可切片
集合([]):in,add,issupperset,remove
解决问题
首先确定做什么,确定问题边界是很重要的。
然后是怎么做,设计和思路。
接下来才是开始做,具体执行。
开发-》测试-》使用,这个不断循环,进行改进。
程序是成长起来的,而不是搭建起来的。(就和大型网站一样,是演化出来,而不是设计出来的)
面向对象
实例变量(每个实例都不同),类变量(同一个类中共享)
类方法和普通函数区别:第一个入参一定是self
构造函数:init
所有类成员(包括方法和属性)都是公开的,但如果双下划线做前缀则是私有变量
继承: class Teacher(SchoolMember)
输入与输出
用户:input,print str类的方法
文件:open,write,close
pickle:持久化存储,dump,load
unicode: io.open,encoding='utf-8'
异常
try/expect/else
try/expect/finally
标准库
sys:系统功能
logging:日志模块
更多
传递元组: a,b = (2,'detail')
特殊函数:init(self,...)等
单语句块
lambda函数
列表推导:就是对数组处理的语法糖
用*使得入参不定长
assert
包装器(没细看)