设为首页 收藏本站
查看: 1297|回复: 0

[经验分享] python基础知识总结(不断更新。。。。)

[复制链接]

尚未签到

发表于 2018-8-11 10:00:02 | 显示全部楼层 |阅读模式
  可以简便的方法:
  (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) 类定义(若有)>  pass
  (6) 函数定义: def test():
  (7) 主程序   if name = "main"
  9.元组不可变,列表可变,字典可变
  10.set函数,去除集合中重复元素,li = set(list2)
  11.两个集合求交集:list1 & list2,求并集:list1 | list2

  • 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] >  19.python是基于值的内存管理方式,不同变量的值 如果相等,则他们的内存地址id(变量名)也相等
      20.dict.get(key,error) 有则返回值,无则返回提示
      21.列表:
      append(),intsert(1,'two'),extend(),sort(),reverse(),list[:],pop(),del li[0],copy(),clear()
  • [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:xy
  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')

  •   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')
  •   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')
  •   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()  返回文件名
  •   _开头变量含义
      _xx表示受保护变量,不能通过from x import x 导入,可在对象和子类中访问
      x表示系统定义的特殊变量
      __xx 私有成员,只有类对象自己可以访问
  • 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(&quot;%Y-%m-%d %H:%M:%S&quot;,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)                     --重命名

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-550016-1-1.html 上篇帖子: python-writer 下篇帖子: python实现简单爬虫--爬图片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表