python字符串类型
目录
字符串类型一、字符串(str)1.1作用可以用来表示姓名,爱好等 1.2定义字符就相当于一个一个的山楂,字符串相当于一个糖葫芦。字符串就向糖葫芦一样将山楂,串联起来。字符串就像是一串被串联起来的字符,在单引号,双引号或者三引号内包裹的一串字符。需要注意的是, ==三引号内的字符是可以换行的,换行的时候会输出换行== name1 = 'chen' name2 = "nick" print(id(name1)) print(type(name1)) print(name1) #输出: 2793468686640 <class 'str'> chen print(id(name2)) print(type(name2)) print(name2) #输出: 2659224937200 <class 'str'> nick name3 = """chen nick """ print(name3) #输出: chen nick name4 = '''chen nick ''' print(name4) #输出: chen nick 二、如何用字符串只能加(+),乘(*)以及逻辑比较 字符串的拼接,即重新申请一个小空间把俩个字符串都拷贝到一份后在拼接。而不是把一个小空间的变量值复制到另外一个变量的小空间内,然后拼接。 msg2 = "my name is 'chen'" msg3 = "my name is 'chen'" print(msg2+msg3) #输出: my name is 'chen'my name is 'chen' 输出:my name is ‘chen‘my name is ‘chen‘ 注意:==如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同== name = 'chen' print(name * 10) #输出: chenchenchenchenchenchenchenchenchenchen 注意:==字符串的乘法只能乘以数字。== msg1 = 'hello' msg2 = 'z' print(msg1 > msg2) #输出: False 注意:==字符串比较大小,按照ASCII码比较,比较的是字母的顺序== 三、字符串类型的内置方法3.1 优先掌握
3.2需要掌握
3.3其他内置方法
1.find()、rfind()、index()、rindex()、count() # str之find()、rfind()、index()、rindex()、count() msg = 'my name is tank,tank shi sb,hha' print(f"msg.find('tank'): {msg.find('tank')}") # 找不到返回-1 print(f"msg.find('tank',3): {msg.find('tank',3)}") print(f"msg.rfind('tank'): {msg.rfind('tank')}") # 找不到返回-1 print(f"msg.index('tank'): {msg.index('tank')}") # 找不到报错 print(f"msg.rindex('tank'): {msg.rindex('tank')}") # 找不到报错 print(f"msg.count('tank'): {msg.count('tank')}") msg.find('tank'): 11 msg.find('tank',3): -1 msg.rfind('tank'): 17 msg.index('tank'): 11 msg.rindex('tank'): 17 msg.count('tank'): 2 2.center()、ljust()、rjust()、zfill() # str之center()、ljust()、rjust()、zfill() print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}") print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}") print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}") print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}") # 默认用0填充 'info nick'.center(50,'*'): ********************info nick********************* 'info nick'.ljust(50,'*'): info nick***************************************** 'info nick'.rjust(50,'*'): *****************************************info nick 'info nick'.zfill(50): 00000000000000000000000000000000000000000info nick 3.expandtabs() # str之expandtabs() print(f"atbtc: %s"%('atbtct')) # 默认制表符8个空格 print(f"'atbtc'.expandtabs(32): %s"%('atbtct'.expandtabs(32))) atbtc: a b c 'atbtc'.expandtabs(32): a b c 4.captalize()、swapcase()、title() # str之captalize()、swapcase()、title() name = 'nick handsome sWAPCASE' print(f"name.capitalize(): {name.capitalize()}") print(f"name.swapcase(): {name.swapcase()}") # 大小写互转 print(f"name.title(): {name.title()}") name.capitalize(): Nick handsome swapcase name.swapcase(): NICK HANDSOME Swapcase name.title(): Nick Handsome Swapcase 5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)
num = "1" #unicode num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = "1" # 全角 num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = b"1" # byte num.isdigit() # True num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal' num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric' num = "IV" # 罗马数字 num.isdigit() # True num.isdecimal() # False num.isnumeric() # True num = "四" # 汉字 num.isdigit() # False num.isdecimal() # False num.isnumeric() # True =================== isdigit() True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无 isdecimal() True: Unicode数字,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节) isnumeric() True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节) ================ import unicodedata unicodedata.digit("2") # 2 unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit("2") # 2 unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit(b"3") # TypeError: must be str,not bytes unicodedata.decimal(b"3") # TypeError: must be str,not bytes unicodedata.numeric(b"3") # TypeError: must be str,not bytes unicodedata.digit("Ⅷ") # ValueError: not a digit unicodedata.decimal("Ⅷ") # ValueError: not a decimal unicodedata.numeric("Ⅷ") # 8.0 unicodedata.digit("四") # ValueError: not a digit unicodedata.decimal("四") # ValueError: not a decimal unicodedata.numeric("四") # 4.0 #"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","亿" 6.is其他
4.存一个值or多个值:一个值 5.有序or无序:只要是有索引的,都是有序的,因此字符串是有序的。 name = 'nick' print(f'first:{id(name)}') name = 'nick handsome' print(f'second:{id(name)}') first:4377100160 second:4377841264 6.可变or不可变:不可变数据类型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |