数据类型之字符串(string)(四)

一世执手 提交于 2019-12-03 00:08:12
字符串本质是:字符序列不可变# 字符串编码,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())
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!