欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

三、python基础知识

程序员文章站 2022-03-20 17:55:52
def test(a.b,*args):a,b位置参数,*args将剩下的元素以元祖形式接收python中不变的数据结构-tuple:list:不要求数据类型相同、元素是有序的、可修改的,用[ ]括起来所有元素:添加元素:list.appen(元素) 追加到尾部,list.insert(元素插入位置,元素))删除元素:list.pop(元素位置)、list.remove(元素) 删除符合条件的第一个元素然后返回删除后的列表、list.pop(元素位置)返回删除的元素/元素位置传空则不删...
  1. 函数:
    1. def test(a.b,*args):a,b位置参数,*args将剩下的元素以元祖形式接收
    2. return可以返回多个值,没有返回值的时候返回None(没有Null)
    3. 解释性语言,不需要编译,执行的时候翻译,效率低、独立
    4. random.random生成0到1之间的随机浮点数
    5. python的socket:使用功recvfrom()接收udp数据,返回(data,address),data为包含接收数据的字符串、address是发送数据的套接字地址;使用getsockname()获取套接字自己的地址,通常是一个元组(ipaddr,port);使用connect()初始化TCP服务器连接,连接到address处的套接字,一般address为元组(hostname,port),连接出错返回socket.error;服务端用listen()开始TCP监听
    6. python的切片不受内建类型的限制,切片不会越界
    7. 当运行模块时,__name__如果等于__main__;如果import到其他模块中,则__name__等于模块名称
    8. 编码过程:line-解码gbk-编码utf-16-编码url,解码相反url-utf-16 - gbk
    9. __new__和__init__:init方法为初始方法(静态方法),new方法才是真正的构造函数(实例方法);new方法默认返回实例(cls)对象供init方法、实例方法使用,init方法无返回;init方法为类的实例提供一些属性或完成一些动作,定制实例对象
  2. python中不变的数据结构-tuple:
    1. list:不要求数据类型相同、元素是有序的、可修改的,用[ ]括起来所有元素:
      1. 添加元素:list.appen(元素) 追加到尾部,list.insert(元素插入位置,元素))
      2. 删除元素:list.pop(元素位置)、list.remove(元素) 删除符合条件的第一个元素然后返回删除后的列表、list.pop(元素位置)返回删除的元素/元素位置传空则不删、del list[元素位置]返回删除后的列表
      3. 清空列表:del list删除整个list运行报错、list.clear()清空整个list返回空的list
      4. 列表元素出现次数:list.count(某个元素)某个元素出现次数,from collections import Counter引用后Counter(list)返回类似于字典的计数器返回所有元素出现次数、Counter(list).most_common(n)返回出现次数最多的前n位数(元组类型,按顺序取,n+1位即便与第n位一直也丢弃,n不传返回所有结果)
      5. 列表拼接:list1.extend(list2)将值返回给list1,list1+list2
      6. 列表复制:list*n相当于n个list相加、list1=list.copy()列表list1被list覆盖
      7. 访问list:list[start:end:n]:按照步数n访问索引为start至end的元素,包头不包尾,start不传默认取0,end不传默认取len(list),n不传默认取1,如list[::-1]表示从最后一位数访问到list的第一位数,即将列表翻转(list.reverse()也可以实现该功能)
      8. 元素索引寻找:list.index(x[, start[, end]])从start索引至end索引查找元素x,返回第一个匹配值的索引,匹配失败抛出异常,start不传默认0,end不传默认len(list),包头不包尾
      9. 列表排序:sorted(list)不改变原数组返回改变后的值、改变原数组不返回list.sort( key=None, reverse=False) reverse取false升序排列、true按降序排列,默认升序,eg:list.sort(key=len)按照元素的长度进行升序排列、list元素是字典list.sort(key=lambda a: a["key"])元素按照字典中的key值升序排列(a.sort(key=lambda x: list(x.values/keys()))按照元素的value/key排序)、list是元祖list.sort(key=lambda a: a[索引1]:a[索引2])先按照元祖的索引1排序 然后按照索引2排序
    2. tuple:有序,但不可修改,元素不要求同类型,用()括起来所有元素,避免单个元素组成的元组
      1. 元祖可以包含列表:如T=(1,2,[4,5],6)T[2]=[4,5],T[2][0]=4
      2. 元祖访问:tuple[i]表示第i个元素,i为负数代表访问倒数第i个元素
      3. 排序:sorted(iterable,  key=None, reverse=False),eg:sorted(tuple,key=lambda a: a[索引1]:a[索引2])先按照索引2进行排序 然后按照索引1对tuple进行排序
      4. tuple()可以讲字符串、列表、字典、集合转为元祖、字典转的时候只保留key
      5. 如果出现单个元祖,只有一个元素的时候需要添加“,”,eg:(a,)
    3. dict:无序,key和value不要求同一类型,可被修改,用{}括起来所有元素
      1. 判断key是否存在:if key in dict或者用dict.get[key],key不存在则返回None,存在则返回dict[key];dict.setdefault(key) key不存在则插入key、key对应的value为None
      2. 删除元素:dict.pop(key[,value1]),如果key不存在返回value1,如果value未设置且key不存在会报错,存在返回被删除的key对应的value;dict.popitem()返回并删除最后一对键值对,如果字典为空则报错KeyError
      3. 清空字典:dict.clear()
      4. key必须保证唯一性,如果不唯一,只会记住最后一个;key不可变,可采取数字、字符串、元祖,但列表不行
      5. 拷贝:浅拷贝-dict.copy()或import copy然后调用copy.copy(dict)拷贝原数组,原数组如果发生改变,父对象改变无影响,子对象会变更成原数组改变后的值;深拷贝import copy然后调用copy.deepcopy(dict)拷贝原数组,父子对象改变对新字典均无影响
      6. 修改字典:dict.fromkeys(seq[,value]),设置字典值列表的值为value,value取空默认传None,该方法返回一个新的字典;dict.update(dict2)把dict2追加入到dict中
      7. 查找元素:dict.items()遍历所有键值,dict.keys()遍历所有键,dict.values()遍历所有值
    4. string:可以用‘’或""来创建
      1. 字符串前缀:r/R去除转义字符、f表示在字符串内支持{}、b表示后面是bytes类型(服务器、浏览器只认bytes类型)、u编码规范化一般用于中文字符串作前缀
      2. 转义符:续行符\用在行尾、\\反斜杠符号输出\、\'返回‘、\“返回"、\r回车、\t横向制表符、\n换行
      3. 格式化符:%c格式化字符及ASCII码、%s格式化字符串、%d格式化整数、%u格式无符号整型、%o格式化八进制数、%x格式化无符号十六进制数(大写%X)、%a.bf格式化浮点数(a表示浮点数长度,b表示浮点数小数后面的精确度,不填默认6位,a小于实际长度输出a、大于实际长度左侧补齐空位;b小于实际长度四舍五入、大于实际长度左侧空格补齐)
      4. 判断元素是否存在:s in string 存在返回True,否则返回False,s not in string正好相反;str.endwith(s,start,end)判断str的start和end间是否是以字符or字符串s结尾的,是返回True,否则返回False;
      5. 元素检验:str.isalnum(),检验str是否只由字母或数字组成,符合则返回True,否则返回False;str.isalpha()判断str是否只由文字或字母组成,是返回True,否返回False;str.isdigit()判断是否只包含数字;str.islower()判断是否全由小写字母组成;str.issuper()判断是否由大写字母组成;str.isnumeric()检测是否只由数字字符组成,数字字符包含 Unicode 数字,全角数字(双字节),罗马数字,汉字数字;str.isspace()判断是否只包含空格;str.istitle()判断所有单词拼写首字母是否大写;str.startwith(s,start,end)检测
      6. 字符串检索:string[start:end],start不传默认0,end不传默认len()、字符串翻转可以用string[::-1];str.rfind(s,start,end)如果包含s返回查找到的最后一个索引值,不包含返回-1;str.find(s,start,end)如果包含s返回查找到的第一个索引值,不包含返回-1;str.index(s,start,end)如果包含s返回查找到的第一个索引值,不包含报错;str.rindex(s,start,end)如果包含s返回查找到的最后一个索引值,不包含报错;str.split("分隔符",num)通过指定分隔符进行切片,分割为num+1个字符串,num默认-1全部;str.splitlines(True/False),输出结果里是否保留换行符,返回修改后的字符串;
      7. 字符串修改:str.capitalize()首字母大写其余字符小写后返回,如果首字符不是字母则全部转为小写后返回;str.center(width[,fillchar]),返回width宽度str居中两侧fillchar填充的字符串,如果width小于字符串长度,则返回原串,fillchar不填默认为空格;str.expandtabs(tabsize=8),以tabsize个空格替换制表符\t,返回修改后的字符串,默认size为8;str.ljust((width[,fillchar]),左对齐,输出一个以width开头fillchar填充的width宽度字符串,width小于len(str)返回原串;str.rjust(width[,fillchar])右对齐;str.lstrip(s)去掉左边全部空格或者指定字符s;str.rstrip(s)删除右末尾的所有s或者空格,返回修改后的字符串;str.lower()将所有大写字符改为小写;s.maketrans(intab,outtab)将s中的intab字符全部换成对应位置的outtab字符并返回;max(str)返回str中最大的字符;min(str)返回str中最小的字符;str.replace(old,new[,max])将str中的所有old字符换成new、替换次数不超过max次,返回替换后的字符串,max不填默认全部替换;
      8. 字符串拼接:str*n相当于n个s相加;str.join(s)将s作为连接符连接str中的所有元素,并返回修改后的值
      9. 字符串出现次数:str.count(s,start,end)在索引为start~end之间寻找字符s,start默认0,end默认len(str),返回s出现的次数
      10. 字符串decode、encode处理:bytes.decode(encoding="utf-8", errors="strict")以指定编码格式解码bytes对象,返回解码后的字符串;str.encode(encoding='UTF-8',errors='strict')以UTF-8的编码格式对str进行encode,erros设置错误处理方案,默认是strict,返回编码后的对象(bytes对象)
    5. set:集合中元素是无序的,可被修改,其中元素不要求一个类型,此处以basket举例
      1. 构建set:空集 S=set(),非空集S=set(传入list)或者S={元素1、元素2、元素3,……}
      2. 去重:print basket
      3. 判断元素存在 value in basket返回True表示存在,返回False表示不存在
      4. 两个集合运算:a-b返回a中有但b中没有的元素;a|b或a.union(b, c...)返回新集合或a.update(b)修改原集合,返回集中a和b集合包含的全部元素,;a&b或a.intersection(b)返回新合集或a.intersection_update(b,c,d)在原集上移除不合规元素,返回a和b的交集;a^b或.difference(b)返回a和b的差集;a.difference_update(b)修改原集合或a.symmetric_difference(b)返回新集合,移除a和b中都有的元素后返回;a.symmetric_difference_update(b)修改a集合,将a和b的交集去除,然后增加b中非重复的元素
      5. 集合比较:s.isdisjoint(s1),判断两个合集是否有相同元素,不包含返回True,反之False;s.issubset(s1),判断s是否是s1的子集,是则返回True,反之False;s.issuperset(s1),判断s1是否是s的子集,是则返回True,反之False
      6. 添加元素:s.add(x)将x添加到s中,如果x已经存在则不进行任何操作;s.update(x),x可以是列表、字典、元素等
      7. 移除元素:s.remove(x)将元素x从s中移除出去,如果x不存在会报错;s.discard(x),x不存在不报错;s.pop()随机删除元素
      8. 清空合集:s.clear()
      9. 拷贝集合:s.copy()
    6. 文件读取方式:
      1. f=open(file,“模式”,encoding="utf-8") 、f.read()、f.close()
        1.  读写模式有:r只读、r+读写(rb以二进制读模式打开,rb+以二进制读写模式打开)、w新建覆盖原文件(w+以读写模式打开、wb以二进制写模式打开、wb+以二进制读写模式打开)、a追加(a+以读写模式打开、ab以二进制追加模式打开、ab+以二进制读写模式打开)、b二进制文件
        2. f.read(size)读取文件size个字符、size未指定则全部读取、如果文件大小>于2倍内存则会有问题、读到文件末尾返回空字符串;f.readline(size)读取文件size个字符、size未设置读取整行,f.readlines(size)读取包含size行的文件整行返回列表;f.write()写入字符串;f.tell()返回当前文件的指针位置,是个整数;f.seek(偏移量,[起始位置]),用来移动文件位置,偏移量单位:比特、可正可负,起始位置:0-文件头、默认值,1-当前位置,2-文件末尾;
      2. with open(path,encoding='utf-8') as f: 、f.read()
      3. import linecache、linecache('file',n):读取file的第n行
    7. 复数:real + image j/J 或 complex(real,image),real实部、image虚部,不支持比大小
      1. 共轭复数a.conjugate()=real -image j/J
      2. 复数相加a+b=(real1+real2) + (image1+image2) j/J,复数想减a-b=(real1-real2) + (image1-image2) j/J
      3. 乘:a*b=real1*real2 -image1*image2 +(real1*image2+real2*image1) j/J
    8. re模块
    9.  

本文地址:https://blog.csdn.net/Sabrina_FN/article/details/114002305

相关标签: python 测试