正在学习python中,收集整理下学习笔记,以供参考。本篇主要为基础语法。
一、基础知识
1、数据类型和变量
python是动态语言,不像java的静态语言那样先声明变量的数据类型才能使用,直接对变量赋值即可
2、字符编码
- 统一用utf-8即可变长的Unicode
其中:ord()可以获取字符的整数表示;
chr()可以将编码转换为对应的字符。
- 关于格式化:
%s对应字符串
%d对应整数
%f对应浮点数
%x对应十六进制整数
3、list和tuple的区别
- list使用[]表示,tuple使用()表示;
- list称列表是有序集合,可以随时增加和删除里面的元素,有append()——追加、insert()——插入、pop()——删除方法;
- tuple称元祖是有序列表,一旦初始化就不能修改,没有append()、insert()方法
4、dict和set的区别
- dict称字典是键值对(key-value),可以有极快的查找速度;一个key只能对应一个value,有get()和pop()方法,且key是不可变对象
- set称集合是一组key的集合,没有value,没有重复值,有add()和remove方法
5、循环
- 使用for...in...
- break和continue的区别:break是提前结束当前循环,continue是结束本次循环从头开始
6、函数
1)定义函数:
def 函数名(参数):
return ...
eg.
def my_abs(x):
if x>10:
return x
2)函数参数
- 位置参数:按照传入的顺序依次调用eg. power(x,n)
- 默认参数:默认参数指向不变对象eg.power(x,n=2)
- 可变参数:*args,传入的参数个数是可变的,是个元组
- 关键字函数:**kwargs,扩展函数的功能,调用时除了必选参数,也可以传入任意个关键字参数,是个字典
- 命名关键字参数:*,args,限制关键字参数的名字,命名关键字参数必须传入参数名
3)递归函数
自己调用自己,缺点是很可能会栈溢出
尾递归:只在return时调用自己,且不含表达式
二、高级特性
1、切片[]
切片可用来取list或tuple的指定索引范围
eg.L[0:3]指取前3个元素,从下标0开始到下标3为止,但不包括下标3
2、迭代:通过for循环遍历
for...in...可以迭代list或tuple或字符串
- dict迭代,一般默认迭代的是key;通过for value in d.values()可以迭代value;通过for k,v in d.items()可以迭代key和value
3、生成器和迭代器
- 生成器:是一边循环一边计算的机制
创建生成器的方法:1)将列表生成式的[]改为():eg g=(x*x for x in range(10))
2)使用yield的函数
- 迭代器:是访问集合元素的一种方式,可以被next函数调用并不断返回下一个值的对象,特点是不需要事先准备好整个迭代过程中的所有元素,仅在迭代到某个元素时才开始计算该元素,适合遍历比较大的集合