python之数字字符串类型

# -*- 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模块(后续补充.....)














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值