字符串是有序的,不可变的。
下面的例子说明了字符串是不可变的
name = 'alex' name = 'Jack' """ 并没有变,只是给name开启了一块新内存,储存Jack In [9]: name = 'alex' In [10]: id(name) Out[10]: 4501642800 In [11]: name = 'Rain' In [12]: id(name) Out[12]: 4501820168 原来的被python给清理了 """
字符串常用方法:
s = 'Hello World' print(s.swapcase()) # hELLO wORLD 大写变小写,小写变大写 print(s.upper()) # HELLO WORLD 变大写 print(s.lower()) # hello world 变小写,只对中英文有效 ss = 'alex edward' print(ss.title()) # Alex Edward 首字母大写 print(s.casefold()) # hello world # 变小写,对于非中英文的也有效 print(s.center(13, '*')) # *Hello World* 长度、两边要打印什么 print(s.count('o', 0, 5)) # 1 统计指定的字符串,范围从0到5 print(s.endswith('!')) # False 以什么结尾 s2 = 'a b' print(s2) # a b print(s2.expandtabs(10)) # a b # 扩展tab键的长度 print(s.find('l', 6, 10)) # 9 找到,指定范围 print(s.rfind('o')) # 7 从右边开始找 info = "my name is {name} and i'm {age} years old".format(name='alex', age=27) print(info) # my name is alex and i'm 27 years old print(s.index('o', 5, 11)) # 7 和list的index一样 lindex()从左边找,rindex()从右边找 s3 = 'aa11啊' print(s3.isalnum()) # 是否包含阿拉伯的数字或字符 True print(s3.isalpha()) # 是否是阿拉伯字符 False print(s3.isdigit()) # False 是否是数字 和isnumeric()、isdecimal()一样 print(s3.isidentifier()) # True 是否是合法的变量 print(s3.islower()) # True 是否小写 print(s3.isprintable()) # True 是否可被打印 二进制流的不可被打印 print(s3.istitle()) # False 首字母大写 isupper() 是否都是大写 print(s3.isspace()) # 是否有空空格 names = ['alex', 'jack', 'rain'] str_name = '|'.join(names) print(str_name) # alex|jack|rain 把列表变成字符串后拼接字符串 print(s.ljust(20, '-')) # Hello World--------- s在左边 print(s.rjust(20, '-')) # ---------Hello World s在右边 print(s.upper()) # HELLO WORLD 大写 s4 = ' hello world ' print(s4.strip()) # hello world 去掉两边的空格、换行,tab. 还有lstrip()和rstrip() s5 = 'anvasd' s6 = '12%$#k' table = str.maketrans(s5, s6) # s5和s6长度必须一样 翻译成ASCII码,用来自己定义密码表 print(table) # {97: 36, 110: 50, 118: 37, 115: 35, 100: 107} print('edward'.translate(table)) # ekw$rk 根据s5,s6的对应表翻译 print(s.partition('o')) # ('Hell', 'o', ' World') 以o为中心,把别的两边分开 rpartition(),从右边开始分 print(s.replace('l', 'L', 1)) # HeLlo World 只换1个 print(s.split('o', 1)) # ['Hell', ' World'] 按o分,按哪个分哪个就没了 rsplit()从右边分 s7 = 'a b alex c' print(s7.splitlines()) # ['a', 'b', 'alex', 'c'] 按换行分 print(s.startswith('H')) # True 以什么开始 print(s.endswith('d')) # True 以什么结束 print(s.zfill(15)) # 0000Hello 长度变成15,不够了用0填