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