1、数据类型:数字型(int,long,float,complex),布尔型(bool),字符串(str),列表(list),元祖(tuple),字典(dict),集合(set)
2、字符串格式化:
1) 'Hello, %s' % 'world'
2) 'hello {}'.format('kangkang')
3、字符串解码与编码
1) 解码:decoding('utf-8') 默认是:utf-8
2) 编码:encoding('utf-8')
4、list
1) 定义方式:[]
2) 操作方式
1) 增:append("内容")末尾追加;insert("位置", "内容")指定位置追加
2) 删:pop()删除末尾;pop(位置)删除指定位置的内容
3) 改: list[下标] = 新内容
4) 查: in, not in ; 下标(整数从前开始,负数从末尾开始)
5、tuple
1) 定义方式:()
2) 元祖只能查,方法和list一样
3) 元祖拆包:
注:元祖拆包 a=(1,2) c,d = a , c = 1 d = 2
依此类推
for A,B IN a :
A = 1
B = 2
6、dict
1) 定义方式{key:value}
2) 操作方式
1) 增:dict[key]=value
2) 删:del dict[key]
3) 改:相同键名表修改
4) 查:dict[key]没有报错,可以用in先做判断;dict.get(key)没有不会报错
7、set
1)定义方式:{},如果要创建一个空集合,你必须用 set() 而不是 {}
2)操作方式
1) 增 add()
2) 删 pop末尾,remove()指定
3) 改 update({}或[])
4) 查 for in
类型总结:
1) 可变类型:list,dict,set
2) 不可变类型:number, bool, str, tuple
3) 作用:不可变类型可以作为键,可变类型不能作为键.
4) 补充:type()可以测出变量类型,id()可以测出变量的地址
8、函数
1) 定义: def func_name(形参)
2) 调用: func_name(实参)
3) 型参类型:
1) 默认参数:func_name(a,b=2),b是默认参数,必须放在必要参数的后面(不然会出问题,因为不知道参数是给默认参数还是必要参数)
例:print('value',end="")不换行,end为默认参数'\n'
注:有多个默认参数,可以指定为哪个默认参数指定值,可以通过参数名=值的方式调用
2) 不定长参数:func_name(a,b,*args) *args 实参多于形参的个数都是它的(封装成元祖(注:一个元素的元祖是(a,)一定有逗号))
3) 关键字参数:func_name(**kwargs) 带有变量名的参数
调用方法:func_name(key=value) 如果key为必要参数,先满足必要参数。
4) 命名关键字参数func_name(*,a,b)a,b为命名关键字参数
调用方法:func_name(a = value, b = value)
形参的定义顺序:必要参数,默认参数,不定长参数,命名关键字参数,关键字参数 (不定长参数和命名管家你参数不联用)
4) 递归函数
5) 匿名函数:
1) 定义方式:lambda 形参:表达式 (默认返回表达式的值)
2) 调用方式:可以将匿名函数赋值给变量,通过变量访问
6) 值传递or引用传递?
Python参数传递统一使用的是引用传递方式。因为Python对象分为可变对象(list,dict,set等)和不可变对象(number,string,tuple等),
当传递的参数是可变对象的引用时,因为可变对象的值可以修改,因此可以通过修改参数值而修改原对象,这类似于C语言中的引用传递;
当传递的参数是不可变对象的引用时,虽然传递的是引用,参数变量和原变量都指向同一内存地址,但是不可变对象无法修改,
所以参数的重新赋值不会影响原对象,这类似于C语言中的值传递。
9、模块
1) 一个py文件相当于一个模块
2) 模块安装: pip install 模块名
3) 导入模块:
1)import 模块 调用:模块名.方法(或别的)例:import requests
2)from 模块 import 方法 调用:方法(或别的)例:from lxml import etree
3)from 模块 impory * ,不推荐,后面导入的会覆盖前面的
4)import 模块 as 小名
4) def _func_name() 以下划线开头的属性和方法是这个模块私有的
5) __all__ = ["函数,变量,类···"] 在模块中可以指定那些东西能被外部调用
6) 模块在解释的时候,模块会被翻译成字节码。后续不用重新翻译。
7) __name__ 属性:通过命令执行时:为__main__ 模块导入引用是模块名
所以在模块中if(__name__ == "__main__"):后面可以执行一些只在当前模块执行的代码,通常是测试代码。
8) 标准模块写法:
# -*-coding:utf-8-*-
__author__ = 'author'
import modules
def main():
pass
if __name__ == '__main__':
main()
10、类
1) 类的定义:class 类名():
2) 对象的声明:类名()
3) 方法:
1) __new__(),实例创建的时候调用
2) __init__(),实例初始化用
3) __del__(),实例销毁时候用
4) 私有方法:def __func_name():
5) 静态方法:正常方法加上@staticmethod
6) 正常方法:def func_name():
7) 类方法:正常方法上加@classmethod 用来修改类属性
4) 属性:
实例属性:
1)定义方式: def __init__(self, name, sex):
self.name = name
self.sex = name
2)私有属性: self.__name = name
3)正常方法可以修改属性(类似java中get、set方法)
类属性:
1) 定义方式: class Student():
name = ''
直接在类中定义
2) 私有属性:__name = name
3) 通过类方法修改
5) 继承:
1) 实现方式:class A(C)
2) 支持多继承class A(B,C)
注意:如果方法重名,首先调用自己的方法
可以通过类名.__mro__的查看调用顺序
3) 调用父类方法:可以通过类名加方法名
6) 多态:
1) 向上转型:子类对象先从父类对象继承,然后子类对象应用赋值给父类对象
2) 向下转型:父类对象引用赋值给子类对象
上述两条是java中的多态体现
在python中不要求严格的继承关系,只要即在向上转型的过程中不要求子类必须继承自父类。
11、异常
1) 定义方式:
try:
except 异常名字(多个异常用括号包起来):
except Exception as exp捕获所有异常
exp:异常信息
else:
没有异常时执行
finaly:
2) 自定义异常
定义:从Exception(异常类)继承
抛出:raise 自定义异常类
3) 抛出异常:raise
12、IO操作
1) 打开文件:open('文件名.后缀','操作符')
2) 关闭文件:close()
3) 读文件:read()防止内存奔溃;读行数据:readlines()全部行;readline 只读一行
4) 写文件:write(); writelines()
1) write()需要传入一个字符串做为参数,否则会报错
2) writelines()既可以传入字符串又可以传入一个字符序列,并将该字符序列写入文件
5) 文件定位:seek(offset,from)
offset:移动距离
from: 0:表示文件头
1: 当前位置
2:文件结尾
6) 文件操纵:os模块
1) 文件重命名:os.rename()
2) 文件删除:os.remove()
3) 删除文件夹:os.rmdir()
python-基础知识总结
最新推荐文章于 2024-08-18 23:22:09 发布