# encoding=utf-8 """ 1、字符串类型 (1)由引号包含的一些字符,实质是字符序列(由字符组成的序列) (2)字符串是有序的、不可变的,无法对原字符串做任何修改 (3)编码 A、默认16位Unicode编码,ASCII码是Unicode编码的子集 B、使用内置函数ord()可以把字符转换成对应的Unicode码 C、使用内置函数chr()可以把十进制数字转换成对应的字符 (4)转义:使用"\",表示特殊效果 \(续行符)、\\(反斜杠)、'(单引号)、"(双引号)、b(退格)、n(换行)、t(制表符)、r(回车) 2、查找方法 (1)字符串.find(char,start,end):返回从左开始第一个指定字符的索引值,没找到返回-1 (2)字符串.rfind(char,start,end):返回从右开始第一个指定字符的索引值,没找到返回-1 (3)字符串.index(char,start,end):返回从左开始第一个指定字符的索引值, 没有找到报错ValueError (4)字符串.rindex(char,start,end):返回从右开始第一个指定字符的索引值, 没有找到报错ValueError (5)字符串.count(char):计数,返回指定字符在字符串中的个数 (6)字符串.encode(encoding):以指定的编码格式编码字符串 A、str用于展示 B、byte用于传输 C、encode:编码,将字符串转换成字节码str-->byte D、decode:解码,将字节码转换成字符串byte-->str E、utf-8:英文占1个字节,中文占3个字节 F、gbk:英文占1个字节,中文占2个字节 G、转义字符:改变原有字符的意义,\特定字符 H、原生字符:任意字符串之前添加字母r或者R (7)len(字符串):返回字符串的长度 3、替换方法:创建了新的字符串对象,并指向了变量 (1)字符串.replace(旧,新,次数):按照指定次数替换字符串中的旧数据替换成新数据 (2)字符串.replace(旧,新):默认全部替换字符串中的旧数据替换成新数据 (3)字符串.maketrans(原字符,替换字符-个数相同):制作一个替换关系(字典) (4)字符串.translate(trans):使用制作的替换关系替换字符串数据 4、拆分方法 (1)字符串.partition(子串):从左到右将字符串按照子串前后固定切割成三部分,返回元组类型 (2)字符串.rpartition(子串):从右到左将字符串按照子串前后固定切割成三部分,返回元组类型 (3)字符串.splitlines():将字符串按照换行符分隔,返回一个列表 (4)字符串.split(符号):按照给定符号切割字符串,默认空格、空行、制表符分隔,返回一个列表;可设置maxsplit指定切割次数 (5)字符串.rsplit(符号):通过指定分隔符对字符串进行拆分,默认空格、空行、制表符分隔,返回一个列表;可设置maxsplit指定切割次数 (6)符号.join(可迭代数据):将可迭代数据按照符号拼接成一个字符串 (7)拼接字符串要点 A、使用拼接符+,会生成新的字符串对象,效率低,不推荐使用 B、使用join(),只会创建一个对象,效率高,推荐使用 5、修饰方法 (1)字符串.center(num):将字符串按照给定的数目居中展示,默认按照空格填充,可设置填充字符 (2)字符串.ljust(num):将字符串按照给定的数目左对齐展示,默认按照空格填充,可设置填充字符 (3)字符串.rjust(num):将字符串按照给定的数目右对齐展示,默认按照空格填充,可设置填充字符 (4)字符串.zfill(num):将字符串填充到指定的字符长度,不足用0从左侧开始填充 (5)字符串.strip(char):从字符串两端去除所给字符各个元素的内容,注意必须从两头开始去除,字符空时默认删除两边空格 (6)字符串.rstrip(char):删除右边数据,从字符串右边去除所给字符各个元素的内容 (7)字符串.lstrip(char):删除左边元素,从字符串左边去除所给字符各个元素的内容 6、变形方法 (1)字符串.upper():将字符串中的字母大写 (2)字符串.lower():将字符串中的字母小写 (3)字符串.swapcase():将字符串中的字母大小写互换 (4)字符串.title():将字符串中的单词首字母大写,其他字母小写 (5)字符串.capitalize():将字符串的首字母大写,其他字母小写 (6)字符串.expandtabs:将特殊字符串(\t)转换成空格,默认8个空格,可以设置转化的空格数目 (7)字符串.casefold():所有字母的小写,只转换ASCII字母 7、判断方法 (1)字符串.isalnum():判断字符串是否完全由字母或数字组成 (2)字符串.isalpha():判断字符串是否完全由字母组成 (3)字符串.isdigit():判断字符串是否完全由数字组成 (4)字符串.isupper():判断字符串当中的字母是否完全是大写 (5)字符串.islower():判断字符串当中的字母是否完全是小写 (6)字符串.istitle():判断字符串是否满足title 格式 (7)字符串.isspace():判断字符串是否完全由空格组成 (8)字符串.startswith(char):判断字符串的开头字符,也可以截取判断 (9)字符串.endswith(char):判断字符串的结尾字符,也可以截取判断 (10)字符串.isascii():判断字符串是否为ascii码 (11)字符串.isdecimal():判断字符是否只包含十进制字符串-二进制0b、八进制0o、十六进制0x (12)字符串.isidentifier():判断字符串变量名是否合法 (13)字符串.isnumeric():判断字符串是否只由数字组成 (14)字符串.isprintable():判断是否为可打印字符串 8、%占位 (1)d-数值:给int类型的数据占位 (2)f-浮点数:给float类型的数据占位 A、保留小数点后一位:%.1f或%.f B、保留小数点后两位:%.2f (3)s-字符串:给str类型的数据占位 (4)当只有一个填充数据时,数据可以不使用括号包含 {}.f(无参-不指定位置) {1}:{0}.f('无参-指定位置',1) {n}.f(**字典) {n}.f(n=数据) {0[0]}:{0[1]}.format(列表) {:.2f}.format(小数) {:.nf}—小数n位 {:+.nf}—符号小数n位 {:.n%}—百分制小数n位 {:0>5d}—数字补零(右对齐) {:a<5d}—数字补a(左对齐) {:,}—逗号分隔数字 {:.2e}—指数小数2位 {:^10d}—中间对齐 9、format赋值 (1)位置赋值:通过{}来代替% A、{}{}.format(数据1,数据2):按照位置先后将数据1、数据2填入到对应位置的{}占位中 B、占位的数目和和给定的数据数目必须一致 (2)编号赋值 A、{1}{0}.format(数据1,数据2):按照标号将数据1、数据2填入到对应位置的{}占位中 B、注意编号索引不可比数据个数大,编号和不编号不和混用 (3)关键字赋值 A、{参数名}{参数名}.format(参数名=参数值):按照关键字名将对应数据填入到对应位置的{}占位中 B、给定的参数个数可以不使用,但是不能没有 10、f-string格式化 (1)可以直接通过f{}的方式给位置填充数据 (2)可以直接填充数据,也可以填充变量 11、填充格式化 (1)格式:[填充字符][对齐方式][宽度].[保留位数] (2)对齐方式:<表示向左对齐,^表示居中对齐,>表示向右对齐 (3)按照填充字符、对齐方式为数据拓展为指定宽度的格式数据,保留指定的小数位数--保留方式使用四舍五入规则 (4)str{}.format(char)):字符串格式化 (5)字符串.format_map(dct):字符串格式化,只操作字典 12、字符串驻留机制 (1)字符串创建后,会直接保存在驻留池中,再次创建相同字符串时,会直接引用驻留池中的字符 (2)优点:仅保存一份相同且不可变的字符串 (3)字符串的比较和同一性 A、==:判断两个字符串是否相同(值相等) B、is:判断两个字符串是否同一对象(值相等,地址相同) C、in:判断一字符串是否是存在于另一字符串中 13、可变字符串 (1)字符串属于不可变对象,不支持原地修改 (2)字符串的修改,实质是创建新的字符串对象 (3)字符串修改,可以使用io.StringIO对象或array模块 A、data = io.StringIO(字符串):获取到字符串的io对象 B、data.getvalue():获取到io对象的字符串值 C、data.seek(n):设置修改字符串的索引位置 D、data.write(char):按照设置的位置,使用字符替换字符串的数据 """ import os import time import string import hashlib # 使用引号包含的数据就是字符串 sr1 = " 字符:~!@#$%^&*()-+字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 字符串 大家庭中的一员 @@@@@" sr2 = sr1.encode('utf-8') sr3 = sr1.encode('gbk') sr4 = sr2.decode(encoding="utf8") sr5 = sr3.decode(encoding="gbk") # 查找方法 # 字符串.find(子串)从左向右查询子串在字符串第一次出现的正向索引,不在字符串中返回-1 print("字符串.find(子串):从左向右查询子串,在字符串第一次出现的正向索引:", sr1.find("我")) print("字符串.find(子串):从左向右查询子串,不在字符串中返回-1:", sr1.find("我们")) # 字符串.rfind(子串)从右向左查询子串第一次出现的正向索引,不在字符串中返回-1 print("字符串.rfind(子串):从右向左查询子串,在字符串第一次出现的正向索引:", sr1.rfind("家庭")) print("字符串.rfind(子串):从右向左查询子串,不在字符串中返回-1:", sr1.rfind("家中")) # 字符串.index(子串)从左到右查询子串第一次出现的正向索引,不在字符串中则报错 print("字符串.index(子串):从左到右查询子串,在字符串第一次出现的正向索引:", sr1.index("字符")) print("字符串.index(子串):从左到右查询子串,不在字符串中则报错") # print(sr1.index("字符啊")) # 字符串.rindex(子串)从右到左查询子串第一次出现的正向索引,不在字符串中则报错 print("字符串.rindex(子串):从右到左查询子串,在字符串第一次出现的正向索引:", sr1.rindex("字符")) print("字符串.rindex(子串):从右到左查询子串,不在字符串中则报错") # print(sr1.rindex("字符啊")) # 字符串.count(子串)查询指定子串在字符串中出现的次数 print("字符串.count(子串):查询指定子串在字符串中出现的次数:", sr1.count("字符")) # 替换 # 字符串.replace(旧数据,新数据,次数):将字符串中的旧数据替换成新数据,指定替换的次数,次数超过包含的数量时会全部替换 # 替换字符,指定替换次数 print("字符串.replace(旧,新,次数):按照指定次数替换字符串中的旧数据替换成新数据:", sr1.replace(" ", " ", 2)) # 替换字符,默认全部替换 print("字符串.replace(旧,新,次数):默认全部替换字符串中的旧数据替
py语法基础010_字符串操作
最新推荐文章于 2024-10-03 09:02:12 发布
本文详细介绍了Python字符串的各种操作,包括字符串的类型、查找方法、替换方法、拆分方法、修饰方法、变形方法、判断方法、填充格式化、字符串驻留机制等。还通过实例演示了如何使用这些方法进行字符串的查找、替换、拆分、格式化等操作。
摘要由CSDN通过智能技术生成