# -*- conding: utf-8 -*- #1 numberic数字类型: int,float,complex #int()/float()/complex() a=10 b=8.5 print(bin(a)) #0b1010 # 数字类型的内置函数 print(a.bit_length()) #4 print(a.real,a.imag) #实部和虚部:10 0 print(a.to_bytes(1,'big')) #b'\n' print(a.as_integer_ratio()) #(10, 1) print(a.conjugate()) #10 print(a.denominator) #1 print(a.numerator) #10 #print(a.from_bytes(1,"little")) print(b.hex()) #0x1.1000000000000p+3 print(b.__floor__()) #2 string字符串类型 #创建字符串 astr=str('jason') #astr="jason" #访问字符串中元素 print(astr[0]) #j print(astr[1:3]) #as #更新字符串 print("new string:",astr[:len(astr)]+"diu") #jasondiu #转义字符 #'\',\\','\'','\"','\a','\b','\000','\n','\r','\v','\t','\f','\yyy','\xyy' #续行符'\' print("jason1 \ jason2 \ jason3 ") #反斜杠'\\',单引号'\'',双引号'\"' print("\\",'',"\'",'',"\"",'',"\a",'',"\000") #纵向制表符‘\v’ print("jason\vdiu") #纵向制表符 print("jason\tdiu") #横向制表符 #‘r’:回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。 print("jason\rdiu") print("jason welcome the new coleagues\rdiu") #换页'\f' print("jason\fdiu") # 8进制表示:\yyy print("\110\145\154\154\157\40\127\157\162\154\144\41") print("\61") #ascii码图‘1’的十进制值为49,8进制为0o61,16进制为0x31 #16进制表示:\xyy print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21") # 字符串运算符 a="jason" b="diu" c=a+" "+b # '+':字符串连接 print(c,a*2,b[0],c[1:4]) # '*':重复输出字符串, '[]':通过索引获取字符串中字符,'[:]':截取字符串中的一部分,遵循左闭右开原则, #格式字符串 #字符串格式化符号: %c,%s,%d,%u,%o,%x,%X,%f,%e,%E,%g,%G,%p #格式化操作符辅助指令: *,-,+,<sp>,#,0,%,(var),m.n. print("myname=%s,age=%d" %("jason",30)) #f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去 name="jason" c=f'diu {name}' d=f'{2**10}' print(c,d) #字符串内建函数 #(1)captalize:将字符串的第一个字符转换为大写 astr="jason" print(astr.capitalize()) #Jason #(2)center:返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格 print(astr.center(10,'*')) # **jason***:中间对齐 print(astr.ljust(10,'*')) #jason***** :左对齐 #rjust(width,[, fillchar]):返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 #(3)count:返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 print(astr.count('a',0,len(astr))) # =1, 'a'在字符串astr里出现次数 #(4)decode(encoding="utf-8", errors="strict") and encode # 但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回 bstr="中国" print("没有编码前:",bstr) # 没有编码前: 中国 str_utf8=bstr.encode("UTF-8") str_gbk=bstr.encode("GBK") print("UFT-8 编码后:",str_utf8) #UFT-8 编码后: b'\xe4\xb8\xad\xe5\x9b\xbd' print("GBK 编码后:",str_gbk) # GBK 编码后: b'\xd6\xd0\xb9\xfa' print("UTF-8 解码后:",str_utf8.decode("UTF-8","strict")) #UTF-8 解码后: 中国 print("GBK 解码后:",str_gbk.decode("GBK","strict")) #GBK 解码后: 中国 #(5)endswith(suffix, beg=0, end=len(string)): # 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. astr="hello world!!!" suffix="!!" print(astr.endswith(suffix)) #默认从0开始,=True #startswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 开头, # 是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 print(astr.startswith('he')) #(6)expandtabs(tabsize=8):把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 astr="hello\tworld\t!!!" print(astr,'\n',astr.expandtabs()) #(7)find(str, beg=0, end=len(string)): # 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 print(astr.find('world')) #=6 print(astr.find('opk')) #=-1 #rfind(str, beg=0,end=len(string)):类似于 find()函数,不过是从右边开始查找. #(8)index(str, beg=0, end=len(string)):跟find()方法一样,只不过如果str不在字符串中会报一个异常。 #rindex( str, beg=0, end=len(string)):类似于 index(),不过是从右边开始 #(9)isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False astr="hello" bstr="This Is The World!" print(astr.isalnum()) #True print(astr.isalpha()) #True,只有字母 print(astr.isascii()) #True print(astr.isdigit()) #False print(astr.islower()) #True print(astr.isdecimal()) #False 如果字符串是否只包含十进制字符返回True,否则返回False。 print(astr.isnumeric()) #False print(astr.isspace()) #False,没有包含空格 print(astr.isupper()) #False,没有包含大写字母 print(bstr.istitle()) #如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False. print(astr.isprintable()) # print(astr.isidentifier()) #(10)join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 s1='*' s2='' seq=("h","e","l","l","o") # 字符串序列(元组) print(s1.join(seq)) #将'-'加入到seq字符串列表中 print(s2.join(seq)) #(11)len:返回字符串长度,内置函数 #(12)lower:转换字符串中所有大写字符为小写. astr="8888This Is The world!!8888" print(astr.lower()) #upper:转换字符串中的小写字母为大写 print(astr.upper()) #swapcase():将字符串中大写转换为小写,小写转换为大写 print(astr.swapcase()) #(13)lstrip:截掉字符串左边的空格或指定字符。 print(astr.lstrip('8')) #裁掉左边的8,右边的8保留:This Is The world!!8888 #rstrip():删除字符串末尾的空格或指定字符。 print(astr.rstrip('8')) #8888This Is The world!! #strip():方法用于移除字符串头尾指定的字符(默认为空格)或字符序列 print(astr.strip('8')) #This Is The world!! #(14)max #(15)min #replace:replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次 print(astr.replace('8','9',5)) #指定替换5次: 9999This Is The world!!9888 #(16)split(str="", num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 #返回分割后的字符串列表。 print(astr.split()) #与空格为分隔符切割:['8888This', 'Is', 'The', 'world!!8888'] print(astr.split('T')) #['8888', 'his Is ', 'he world!!8888'], 所有'T'被裁掉 print(astr.split('T',1))# ['8888', 'his Is The world!!8888'],只裁掉一个“T” #(17)splitlines(): 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表, # 如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符 astr="ab c\n\njas\n\rksjd\r" print(astr.splitlines()) #['ab c', '', 'jas', '', 'ksjd'],默认为False,去掉换行符 print(astr.splitlines(True)) #['ab c\n', '\n', 'jas\n', '\r', 'ksjd\r'],保留换行符 #zfill():方法返回指定长度的字符串,原字符串右对齐,前面填充0 astr="jason" print(astr.zfill(20)) #000000000000000jason #3 Binary Sequence Types — bytes, bytearray, memoryview:二进制类型处理以及Struct模块 #(1) bytes abin=b'\f0\f1\f2' #定义字符串,类型属于bytes,同字符串类型一样,可以使用类似字符串的内置函数 bhex="313131" #定义字符串,类型属于str print(type(abin),type(bhex)) #<class 'bytes'> <class 'str'> print(bytes([1,2])) #列表 print(bytes("12","utf-8")) #字符串需要加encoding #hex():Return a string object containing two hexadecimal digits for each byte in the instance. print(abin.hex('-')) #0c-30-0c-31-0c-32 将二进制转换成十六进制,'\f'=0x0c换页键 #fromhex:returns a bytes object, decoding the given string object. # The string must contain two hexadecimal digits per byte, with ASCII whitespace being ignored. print(bytes.fromhex(bhex)) #b'111' 将十六进制转换为字节 #(2)bytearray print(bytearray(b'333332').hex('-')) #33-33-33-33-33-32 print(bytearray.fromhex(bhex)) #bytearray(b'111') #(3)memoryview #v = memoryview(bytearray('abcdefg','utf-8')) #第一个参数为字符串,第二个参数要为encoding #print(v[1],v[-1],v[1:5],v[1:5].tobytes()) #98 103 <memory at 0x000001A3C8ECF100> b'bcde' m0 = memoryview(b'abcefg') print(m0[1],m0[-1],bytes(m0[1:4])) #98 103 b'bce' #Struct模块(后续补充.....)
python之数字字符串类型
最新推荐文章于 2023-09-09 16:11:28 发布