字符串本质是:字符序列不可变# 字符串编码,Unicodeord('A')ord('王')# 创建字符串,引号a = 'Hello python!'b = "I'm a teacher!"c = """nameagejob"""d = '' # 空字符串# 转义字符 “\+特殊字符”"""\(在行尾时) 续行符\\ 反斜杠符号\' 单引号\" 双引号\b 退格\n 换行\t 制表符\r 回车"""# 字符串拼接"""1、+号连接 字符串+字符串——拼接 数字+数字——计算 类型不同——报错2、可以将多个字符串直接放在一起实现拼接"""print('abc' + 'cde')print('abc' 'cde')# 字符串复制print('abc'* 10)# 不换行打印print('doc', end='\t')print('wang', end=' ')print('王', end='*')# 从控制台读取字符串# name = input("请输入姓名:")# print(name)# str()函数,将其他类型转为字符串print(str(3.33))print(str(True))# 提取字符串# 左侧从0开始,右侧从-1开始a = 'abcdefghijklmnopqrstuvwxyz'print(a[0])print(a[3])print(a[-1])# replace()实现字符串替换,本质是创建了新的字符串对象b = a.replace('c', '王')print(a)print(b)# 切片print(a[:]) # 提取整个字符串print(a[1:4])print(a[3:8:2]) # 步长为2print(a[-3:])print(a[::-1])print(a[12:300]) # 不报错# split()分割a = "to be or not to be"print(a.split())print(a.split('be'))# join(),字符串拼接a = ['wang', 'and', 'zhang']print('*'.join(a))print(''.join(a))print(' '.join(a))"""字符串驻留机制对于符合标识符规则的字符串(仅包含下划线、字母和数字),会启用"""a = 'abc_33'b = 'abc_33'print(a is b) # Truec = 'abc#'d = 'abc#'print(c is d) # 交互界面为False,pycharm为Trueprint(id(c))print(id(d))# 字符串比较和同一性print(a == b) # 比较值是否相等print(a is b) # 比较是否为同一对象# 成员操作符 in / not inprint('a' in a)print('d' in a)# 查找方法a = '岸柳可藏鸦。路转溪斜。忘机鸥鹭立汀沙。咫尺钟山迷望眼,一半云遮。\临水整乌纱。两鬓苍华。故乡心事在天涯。几日不来春便老,开尽桃花。'print(len(a)) # 字符串长度print(a.startswith('岸柳可藏鸦')) # 是否以指定字符串开头print(a.endswith('开尽桃花。')) # 是否以指定字符串结尾print(a.find('路')) # 第一次出现位置print(a.rfind('路')) # 最后一次出现位置print(a.count('华')) # 出现次数print(a.isalnum()) # 受否为字母数字# 去除首位信息b = ' 开尽桃花 'print(b.strip()) # 去除首尾空格,可传参数,去除指定字符print(b.lstrip()) # 去除左侧空格,可传参数,去除指定字符print(b.strip()) # 去除右侧空格,可传参数,去除指定字符# 大小写转换,均产生新的字符串c = 'I love you,Baby!'print(c.capitalize()) # 首字母大写print(c.title()) # 标题print(c.upper()) # 全部大写print(c.lower()) # 全部小写print(c.swapcase()) # 大小写转换# 格式排版print(c.center(40, '*')) # 指定字符串,c居中,不足以*补齐,缺省为空格补齐print(c.ljust(40)) # 左对齐print(c.rjust(40)) # 右对齐# 其他方法c = '枯藤老树昏鸦'print(c.isalnum()) # 是否为字母数字print(c.isalpha()) # 是否为字母(包括汉字)print(c.isdigit()) # 是否为数字print('\t\n'.isspace()) # 是否为空白符print(c.isupper()) # 是否为大写字母print(c.islower()) # 是否为小写字母# 字符串格式化msg = "名字是:{0},年龄是:{1}"m = msg.format('doc wang', 22)print(m)msg = "名字是:{name},年龄是:{age}"m = msg.format(name='doctor', age=18)print(m)# 填充和对齐"""^、<、>分别是居中、左对齐、右对齐,后面带宽度"""r = "{:*>8}".format("234")"""说明:*号表示用填充字符(缺省为空格填充),>右对齐,8表示填充为8个字符"""print(r)# 数字格式化a = "我是{},我的工资为{:1.2f}"print(a.format('doc wang', 3500.23723))b = "{:0>2d}".format(5)c = "{:+.2f}".format(3.141592)print(b)print(c)"""{:.2f} 保留2位小数{:+.2f} 带符号,保留2位小数{:.0f} 不带小数{:0>2d} 数字补零(填充左边,宽度为2){:0<4d} 数字补零(填充右边,宽度为4){:x<4d} 数字补x(填充右边,宽度为4){:,} 以逗号分隔的数字格式{:.2%} 百分比格式{:.2e} 指数记法{:10d} 右对齐(默认,宽度为10){:<10d} 左对齐(宽度为10){:^10d} 居中对齐(宽度为10)"""# 可变字符串import ios = "hello,python"sio = io.StringIO(s)print(sio)sio.seek(7)sio.write('王')print(sio.getvalue())
来源:https://www.cnblogs.com/doc-wang/p/11768484.html