IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python期末复习--补充知识点 -> 正文阅读

[Python知识库]python期末复习--补充知识点

python补充扩展知识点

复习Python时,将遇到的一些有疑问的知识点进行了简单总结,大家一起学习。文章有什么问题欢迎大家指正!

1.@classmethod

1.可以返回一个类

class Data(object):
    def__int__(self,year=0,month=0,day=0):
        self.day=day
        self.month=month
        self.year=year
 	@classmethod
 	def get_data(cls,string_data):
        year,month,day=map(int,string_data.split('-'))
        data1=cls(year,month,day)
        return data1
    def out_data(self):
        print "year:"
        print self.year
        print "month"
        print self.month
        print "day"
        print self.day
#如何调用
r=Data.get_data("2021-12-1")
r.out_data

2.定义类时,在一个方法前面使用@classroom进行修饰,则该方法属于类方法

2.小知识点

  • 对于Python类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。

  • Python定义私有变量的方法为使用__xxx定义变量名

    id(ls1)=1
    ls2=ls1
    ls3=ls1.copy()
    #则id(ls2)=id(ls1)≠id(ls3)
    #ls2的值改变,ls1也会变,而ls3的值改变,ls1的值不变
    
    x=[1,2]
    y=x#y=[1,2]
    print(id(x)==id(y))#True
    z=x[:]#z=[1,2]
    print(id(x)==id(z))#False
    p=x.copy()#p=[1,2]
    print(id(x)==id(p))#False
    
  • random.choice() && random.sample()

    import random
    seq=(1,2,3,4,5)
    print([random.choice(seq)for i in range(5)])#有放回选择e.g[1,1,2,3,3]
    print(random.sample(seq,5))#无放回选择,且sample(seq,n)中n<=len(seq)e.g[5,3,2,4,1]
    
  • 将list转化为字符串 && 字符串转为list

    lst=['1','2','3','4']#不能写[1,2,3,4]
    print("".join(lst))#1234
    
    ss="123"
    print(list(ss))#['1','2','3']
    
    ss="123,123"
    print(ss.split(','))#['123','123' ]
    
    ss="madam madammm"
    print(ss.strip('m').split())#['adam','mada']
    #strip('r')用于开头结尾所有连续包含r的字符
    
  • sort && sorted

    ls=[1,3,2,4]
    #sorted()不改变ls原list值
    print(sorted(ls))#[1,2,3,4]
    print(ls)#[1,3,2,4]
    #.sort()改变原list顺序
    print(ls.sort())#None
    print(ls)#[1,2,3,4]
    
    dic={1:'b',3:'c',2:'a'}
    #sorted(dict)是按key排序,同时返回key列表,同时不改变原dict顺序
    print(sorted(dic))#[1,2,3]
    print(dic)#{1:'b',3:'c',2:'a'}
    
    #用dic.items()指定dict[key:value]排序方式
    print(sorted(dic.items(),key=lambda d:d[0]))#[(1, 'b'), (2, 'a'), (3, 'c')],按key排序,且默认从小到大
    
    print(sorted(dic.items(),key=lambda d:d[1]),reverse=True)#[(3, 'c'), (1, 'b'), (2, 'a')],按value,且从大到小排
    
    
    
  • x.sort(Reverse=True)&&x.reverse()

    ls=[3,1,2] 
    ls2=[3,1,2]
    ls.reverse()#颠倒列表
    ls2.sort(reverse=True)#排序后颠倒列表
    print(ls,ls2)#[2, 1, 3] [3, 2, 1]
    
  • 正则表达式元字符“^”一般用来表示从字符串开始处进行匹配,用在一对方括号中的时候则表示反向匹配,不匹配方括号中的字符。

  • 组合数据类型可以分为 3 类:序列类型、集合类型和映射类型,Python 的 str、tuple 和 list 类型都属于序列类型

     [1,2]*2 or 'ab'*2#True
     {'a','b'}*2 or (1,2)*2 #False
    
  • 静态语言采用编译方式执行,脚本语言采用解释方式执行

  • Python采用的是基于值的自动内存管理方式

  • eval()函数:将输入的字符串转为python语句

    print(eval('2+3*4'))#14
    # print(eval("hello"))#hello is not defined
    print(eval("'hello'"))#'hello' is not defined
    print(eval('"hell0"'))#'hello'
    
  • Python中的同一种序列互相之间可以进行比较,按照字典序进行排序,例如 (1, 2, 3, 4) < (1, 2, 4) 的运算结果是True。

    print((1,2,3)<(2,3,4))#True
    print([1,2,3]<[2,3,4])#True
    
  • 神奇的递归

    ls=[1,2,3]
    ls.append(ls)
    print(ls)#[1,2,3,[...]]
    
  • math

    import math
    x=1.23
    print(math.ceil(x))#2,向上取整
    print(math.floor(x))#1,向下取整
    print(math.trunc(x))#1,返回整数部分
    
  • round()

    #round(x,y)#函数x四舍五入,保留y位小数
    x=3.53
    print(round(x,1),round(x))#3.5 4
    
  • uniform()

    import random
    #uniform(x,y) 随机生成[x,y]的浮点数,其中x=min(x,y) y=max(x,y)
    print(random.uniform(1,5),random.uniform(5,1))
    print(round(random.uniform(1, 5),2))#生成[1,5]两位随机小数
    
  • format()

    • {}不限参数个数,可指定位置,也可以设置参数
    print("{1}{0}{1}".format('a','b'))
    print("姓名:{name},学校{university}".format(name="红橙",university="DHU"))
    
    • 通过字典设置参数

      dic={"name":"红橙","university":"DHU"}
      print("姓名:{name} 学校:{university}".format(**dic))
      
    • 通过列表索引设置参数

      lst=['红橙','DHU']
      print("姓名:{0[0]},学校:{0[1]}".format(lst))#0不能省略
      
    • 常用格式化方式

      print("{:+.2f}".format(3.14))#+3.14 带符号保留小数点后两位
      print("{0:0^5d},{1:x>6d}".format(5,3))#00500 xxxxx3
      # 多个变量格式化时“:”前面的0,1不能省略
      # >右对齐 ^居中对齐 <左对齐
      #{1:x<5d}表示位置为1的整数变量左对齐,宽度为5,剩余位置用x填充
      
  • 正则表达式

    相关推荐pyhon正则表达式

  • {}==None (x)

3.file文件相关

  • 当文件以文本方式打开时,读写按照 字节流 字符串 方式

  • 文件对象的tell()方法用来返回文件指针的当前位置。

  • Python文件读取方法read(size)的含义是从文件中读取指定size大小的数据,如果size为负数或者空,则读取到文件结束

  • 假设已成功导入os和sys标准库,那么表达式 os.path.dirname(sys.executable) 的值为Python安装目录。

  • open函数参数模式

    • ‘a’从文件末尾写入字符
    • ‘w’从文件开头写入字符,并覆盖原文本,若文件不存在则创建文件
    • ‘x’新建文件并写入,若文件存在,则报错
    • ‘+’既可以读又可以写
  • readlines,读所有行,每行作为一个列表元素

    f=open('tmp.txt',mode='r',encoding='utf-8')
    data_list=f.readlines()
    f.close()
    print(data_list)
    
  • 循环读文件

    f=open('tmp.txt',mode='r',encoding='utf-8')
    for line in f:
        print(line.strip())
    f.close()
    
  • flush 手动将写的内容刷到硬盘

    file_object = open('tmp.txt',mode='a')
    while True:
        user=input("用户名:")
        if user.upper()=="Q":
            break
        pwd=input("密码:")
        data="{}-{}\n".format(user,pwd)
        file_object.write(data)
        file_object.flush()
    file_object.close()
    
  • 光标设置 f.seek()&&f.tell()

    #移动光标位置
    f=open('tmp.txt',mode='r+',encoding='utf-8')
    f.seek(5)#移动到指定字节位置
    f.write(10)
    #注意:a模式下不会写到光标位置,只会写到文件尾部
    pos=f.tell()#获取当前光标位置
    f.close()
    
  • with上下文管理

    • 可以实现自动关闭文件,且支持同时多个文件的上下文进行管理

      with open('tmp1.txt',mode='r')as f1,open('tmp2.txt',mode='r')
      
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:24:12  更:2021-12-04 13:26:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:33:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码