手记

python基础知识总结

可以简便的方法:
(1)lambda x,y:x*y
(2)list1 = list(filter(lambda x:x%3 == 0,range(100)))
filter 第一个参数是过滤条件,第二个是要过滤的内容
返回值是个Object,得转换为其他类型
(3)map: list1 = map(lambda x:x**2,[1,2,3,4,5])
第一个是处理条件,第二个是序列
返回值是Object
(4)[i for i in range(10) if i%2 ==0]  直接生成列表

1.缩进是python的灵魂
2.获取变量类型,type(),isinstance(,)
3.s为字符串

4.怎么才能让int四舍五入?
int(x+0.5)
5.python3支持中文变量名,但源码是utf-8
6.python对象3个特性:身份,类型,值
7.python数字类型:int,long,float,boolean,complex(复数),序列类型:字典,元组,列表
8.典型python文件结构:
(1)起始行 #/usr/bin/env/python
(2) 模块文档  "this is a test module"
(3) 模块导入  import os
(4) (全局)变量定义  debug = True
(5) 类定义(若有) class FooClass(Object):
pass
(6) 函数定义: def test():
(7) 主程序   if name = "main"
9.元组不可变,列表可变,字典可变
10.set函数,去除集合中重复元素,li = set(list2)
11.两个集合求交集:list1 & list2,求并集:list1 | list2

  1. parent    
    --_init.py  
    --child      
    -- _init.py    
    --a.py
    目录结构如上,如果要引用a文件,可这样
    import sys,os
    sys.path.append(os.getcwd()+"\parent\child")
    from a import func
    13.os.walk(path)
    14.p,f = os.path.split(spath)   分隔目录和文件名
    drv,left = os.path.splitdrive(spath)   分隔盘符和文件名
    f,ext = os.path.splitext(spath)    分隔文件和扩展名
    15.时间处理
    16.三目运算符:sm = x if x>y else y
    17.None表示空类型
    18.a=[1,2,3] b=[1,2,4]  id(a[1]) == id(b[1])       True
    19.python是基于值的内存管理方式,不同变量的值 如果相等,则他们的内存地址id(变量名)也相等
    20.dict.get(key,error) 有则返回值,无则返回提示
    21.列表:
    append(),intsert(1,'two'),extend(),sort(),reverse(),list[:],pop(),del li[0],copy(),clear()

  2. [i for i in range(10) if i>10]
    23.元组:x = 1,        x = 1,2,3
    24.x = (1,2,3,4)
    2,3之间插入5
    x[:2] + ('5',) + x[2:]
    25.python内置方法:
    divmod(10,2)  返回10对2的除法和余数
    pow(x,y,z) x的y次方,如果z存在,则%z
    float,int,long,list,tuple,str,dict 转换为其类型
    round四舍五入 sum求和
    isinstance(1,int) 前者是否属于后者类型
    'I am {0} ,I like {1}'.format('xy','d')
    enumerate,返回一个可枚举的对象(tuple)
    set
    sorted 排序
    all(集合) 集合中所有的元素都为真才为真
    any(集合) 集合中有一个元素都为真才为真
    cmp(x,y) x<y 返回负数 x==y返回0 x>y返回正数
    next() 返回迭代对象中的下一个元素
    reversed(range(10)) 逆置对象
    sorted()  对对象进行排序,返回一个新的列表
    zip 返回元组型
    x = [1,2,3]
    y = [4,5,6,7]
    print(list(zip(x,y)))  [(1, 4), (2, 5), (3, 6)]
    map:       list1 = map(lambda x:x**2,[1,2,3,4,5])
    第一个是处理条件,第二个是序列
    返回值是Object
    filter:    list1 = list(filter(lambda x:x%3 == 0,range(100)))
    filter 第一个参数是过滤条件,第二个是要过滤的内容
    返回值是个Object,得转换为其他类型
    help() 返回对象的帮助信息
    input 读取用户输入的信息
    open 打开文件
    exec 执行动态语句块 exec('a=1+2')

26.使用函数名doc可以查看函数文档
27.闭包函数:
def fun1(x):
def fun2(y):
return xy
return fun2
28.字符串处理:
capitalize()   首字母大写
title   首字母小写
replace('1','2')  替换
upper 全部大写
lower 全部小写
swapcase 大小写互换
lstrip 去掉左空格  strip 左右  rstrip右空格
split
startswith 以。。开头   endswith以。。结尾
s.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。  
s.isalpha()   所有字符都是字母,为真返回 Ture,否则返回 False。  
s.isdigit()     所有字符都是数字,为真返回 Ture,否则返回 False。  
s.islower()    所有字符都是小写,为真返回 Ture,否则返回 False。  
s.isupper()   所有字符都是大写,为真返回 Ture,否则返回 False。  
s.istitle()      所有单词都是首字母大写,为真返回 Ture,否则返回 False。  
s.isspace()   所有字符都是空白字符,为真返回 Ture,否则返回 False。
replace
find('t') 有则返回位置,无则返回-1
count('t') 字符串中数量
29.关键字:global 修改函数外的全局变量,nonlocal内部函数修改外部函数的局部变量
30.lambda函数:
g = lambda x,y:x
y
g(2,3)        ---------6

31.字典:d = {k:v,k1:v1}
访问:d[k],d.get(k)
修改:d[k] = 'v2'
删除:del d[k]   删除一个
d.clear()  清空所有
del dict   删除字典
d.items() 返回(键,值)元组
d.key()
d.values()
d.pop(k) 删除并返回值
x = {}
x = x.fromkeys((1,2,3),'a')

  1. set
    特点:无序,不能通过索引或执行切片操作
    frozenset() 不可修改的集合
    创建:
    a = {1,2,3}
    a = set('boy')
    a = set(['a','b','c','d'])
    比较:s = {1,2,3}  b = {2,5}
    s.difference(b)    //找到s中存在,b中不存在的集合,返回新值
    添加:s.add()
    删除:discard      s.discard(3)    //删除不存在的元素不会报错
    remove       s.remove(3)       //删除不存在的元素会报错
    pop          s.pop()           //删除最后一个元素并返回新值
    取交集: s = {1,2,3}  b = {2,5}
    s.intersection(b)         //取交集,赋给新值
    判断:  s = {1,2,3}  b = {2,5}
    s.isdisjoint(b)   //判断是否不存在交集(有交集False,无交集True)
    s.issubset(b)     //判断s是否是b的子集合
    s.issuperset(b)   //判断s是否是b的父集合
    取并集:s = {1,2,3}  b = {2,5}
    s.union(b)  //取并集,并赋新值
    更新:s = {1,2,3}  b = {2,5}
    s.update(b)
    print(s)   {1,2,3,5}
    33.文件处理:
    r 只读  r+读写  w可写,存在则覆盖 w+读写,存在则覆盖 a追加,不存在则创建

    f.read()  读取文件全部内容为一个str
    f.readline() 读取一行
    f.readlines() 读取所有行,放到一个list中

    f.write()  只可写字符串
    f.writelines()  可写序列

    当出现提示乱码时:添加encoding='UTF-8'
    open('', 'w+', encoding='UTF-8')

  2. xlrd处理表格

    #打开文件
    workbook = xlrd.open_workbook(r'F:\')
    #获取所有sheet
    workbook.sheet_names()  返回一个列表
    #根据sheet索引或者名称获取sheet内容
    sheet2 = workbook.sheet_by_index(1)
    sheet2 = workbook.sheet_by_name('sheet2')
    #获取sheet2的名称,行数,列数
    sheet2.name,sheet2.nrows,sheet2.ncols
    #获取整行和整列的值(数组)
    rows = sheet2.row_values(3) #第四行内容
    cols = sheet2.col_values(2) #第三列内容
    #获取单元格内容
    sheet2.cell_value(1,0).encode('utf-8')
    #获取单元格内容的数据类型
    sheet2.cell(1,0).ctype

    xlwt  写文件
    #创建工作簿
    f = xlwt.Workbook(encoding='utf-8')
    #创建第一个sheet
    sheet1 = f.add_sheet('sheet1')
    #写数据,对应 行 列 值
    sheet1.write(0,1,label = 'this is the test')
    #保存
    f.save('xx.xlsx')

  3. os模块
    示例目录:path = C:\Users\hwx518534\Desktop
    os.name      nt/posix
    os.getcwd()  得到当前工作目录
    os.curdir       当前目录
    os.listdir(path) 返回指定目录下的所有文件和目录名   列表
    os.remove()     删除一个文件
    os.rename()     重命名
    os.system()     执行系统命令
    os.mkdir()  
    os.rmdir()
    os.exit() 终止当前进程
    os.chdir()  改变当前目录
    os.walk()   返回三元组  第一个是文件夹地址 第二个是list,当前文件夹下所有目录名字(不包括子目录)
    第三个返回的是list,返回的是该文件夹下的所有文件(不包括子目录)

    os.path模块
    示例目录:path = C:\Users\hwx518534\Desktop\temp.py
    os.path.abspath(file) 当前文件的绝对路径
    os.path.dirname() 获取当前文件目录                C:\Users\hwx518534\Desktop
    os.path.split() 返回一个路径的目录名和文件名     ('C:\Users\hwx518534\Desktop', 'temp.py')
    os.path.isfile()  os.path.isdir   检测是否是文件或目录
    os.path.exists()    检测路径是否存在
    os.path.getsize()   获得文件大小(字节),如果是目录返回0L,
    os.path.splitext()   分离文件名与扩展名
    os.path.join()      连接目录与文件名    返回值为路径
    os.path.basename()  返回文件名

  4. _开头变量含义

    _xx表示受保护变量,不能通过from x import x 导入,可在对象和子类中访问
    x表示系统定义的特殊变量
    __xx 私有成员,只有类对象自己可以访问

  5. time模块
    time.time() 纪元开始的秒数
    time.ctime()  Wed Jan 31 17:50:57 2018
    time.localtime() time.struct_time(tm_year=2018, tm_mon=1, tm_mday=31, tm_hour=9, tm_min=51, tm_sec=54, tm_wday=2, tm_yday=31, tm_isdst=0)
    s = time.gmtime()   s.tm_year ---2018
    time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    2018-01-31 18:06:25
    38.shutil模块 --- 高级的文件,文件夹,压缩包处理模块
    shutil.copyfileobj(open('xx.py','r'),open('x.txt','w'))  -- 拷贝文件内容到另一个文件
    shutil.copyfile('xx.py','x1.py')         --拷贝文件到另一个文件
    shutil.copystat(src,dst)                 --仅拷贝状态信息
    shutil.copy(src,dst)                     --拷贝文件和状态
    shutil.copytree('folder1','folder2')     --递归拷贝文件夹
    shutil.rmtree('f1')                      --递归删除文件(夹)
    shutil.move(src,dst)                     --重命名

0人推荐
随时随地看视频
慕课网APP