05.Python开发基础(数据类型之字符)
一、字符串的特性
01:用引号引起来的内容就是字符串类型,但引号无法取消其特殊字符的含义; 02:若想取消引号内特殊字符的含义,需要在引号前面加字母r; 03:字符串中的每个字符都有对应的下标; 04:字符串是不可变的,每一次修改都是进行重新赋值; 05:字符串是可以进行切片的; 06:字符串是有序的(你定好了位置就不会变,除非你做了其它操作);
二、字符类型示例
## 直接用type查看其值的类型是不是字符串类型(值有加引号哈) >>> type("1")>>> >>> type("chenliang") ## 将值赋值给变量,我们就可以直接查看变量所对应值的类型(值有加引号哈) >>> name1 = "chenliang" >>> type(name1) >>> >>> name2 = "lili" >>> type(name2)
三、取消字符串中的特殊字符
>>> print("chenliang\n") # \n表示换行,可以看到"chenliang"下有一空行; chenliang >>> >>> print(r"chenliang\n") # 加上字母r,可以看出没有空行了; chenliang\n >>>
四、字符串是不可变的
每一次修改都是进行重新赋值
>>> name = "chenliang" # 将chenliang赋值给name变量 >>> name # 查看name变量所对应的值 'chenliang' >>> >>> name = "lili" # 对name变量进行重新赋值为lili >>> name # 查看name变量所对应的值 'lili
五、字符串是有下标的
>>> name = "陈亮" # 定义name变量的值为陈亮 >>> print(name) # 查看name变量的值 陈亮 >>> name[0] # 显示name变量中下标为0的字符 '陈' >>> name[1] # 显示name变量中下标为1的字符 '亮' >>> name[-1] # 显示name变量中下标为-1的字符 '亮' >>> name[-2] # 显示name变量中下标为-2的字符 '陈'
六、字符串的常用操作总结
## 统计字符串中字符的长度
len("字符串") # 利用len()函数统计字符串的长度 "字符串".count("字符",从哪个下标开始) # 统计字符串中某个字符有多少个
## 让字符串达到某个长度
"字符串".center(长度,"代替长度的字符") # 让字符串达到指定长度,含字符串长度,在字符串两边进行补长; "字符串".rjust(长度,"代替长度的字符") # 让字符串达到指定长度,含字符串长度,在字符串左边进行补长; "字符串".ljust(长度,"代替长度的字符") # 让字符串达到指定长度,含字符串长度,在字符串右边进行补长;
## 转换字符串中的大小字母
"字符串".capitalize() # 字符串中的首字母大写; "字符串".casefold() # 把字符串中所有的大写字母变成小写; "字符串".lower() # 把字符串中所有的大写字母变成小写; "字符串".swapcase() # 将字符串中的大小写互相转化; "字符串".upper() # 将所有字母转换成大写;
## 判断字符串中是否符合规则
"字符串".endswith("字符") # 判断字符串以某个字符结尾,返回True或False "字符串".startswith("字符") # 判断字符串以某个字符开始,返回True或False "字符串".islower() # 判断字符串是否全是小写字母,返回True或False "字符串".isupper() # 判断字符串是否全是大写字母,返回True或False "字符串".isdigit() # 判断字符串是否全是整数,返回True或False "字符串".isspace() # 判断字符串是否是空格(只是空格哈),返回True或False
## 替换or去掉字符串中的某些字符
"字符串".strip() # 去掉字符串两边的特殊字符 "字符串".rstrip() # 去掉字符串右边的特殊字符 "字符串".lstrip() # 去掉字符串左边的特殊字符 "字符串".replace("替换字符","替换成什么字符") # 替换字符串中的一个或多个字符
## 字符串的格式化
"字符串".split("分隔符") # 将字符串转换成列表,分隔符默认是空格 "字符串".rsplit("分隔符") # 将字符串转换成列表,分隔符默认是空格 "分隔符".join(列表) # 将列表中的元素拼接成字符串 "my name is {0},i like {1}".format("0对应的值","1对应的值") "my name is {name},i like {course}".format(name="对应的值",course="对应的值")
七、字符串的常用操作示例
PS:这些常用操作都是没有真的更改字符串哈,只是通过这些方式处理后,让程序进行判断
## 统计字符串中字符的长度
# 利用len()函数统计字符串的长度,格式:len("字符串") >>> len("chenliang") 9 >>> len("chenliang01") 11 # 统计字符串中某个字符有多少个,格式:"字符串".count("字符",开始下标) >>> "chenliang".count("n") 2 >>> "chenliang".count("n",4) 1
## 让字符串达到某个长度
# "字符串".center(长度,"用什么来代替长度") >>> "chenliang".center(21,"-") '------chenliang------' # "字符串".rjust(长度,"用什么来替代长度") >>> "chenliang".rjust(21,"-") '------------chenliang' # "字符串".ljust(长度,"用什么来替代长度") >>> "chenliang".ljust(21,"-") 'chenliang---
## 转换字符串中的大小字母
# 字符串中的首字母大写,其它字母全部小写,格式:"字符串".capitalize() >>> "cHenLiang".capitalize() 'Chenliang' >>> >>> "1cHenLiang".capitalize() '1chenliang' # 把字符串中所有的大写字母变成小写,格式:"字符串".casefold() >>> "ChenLiang".casefold() 'chenliang' # 把字符串中所有的大写字母变成小写,格式:"字符串".lower() >>> "ChenLiang".lower() 'chenliang' # 将字符串中的大小写互相转化,格式:"字符串".swapcase() >>> "ChenLiang".swapcase() 'cHENlIANG' # 将所有字母转换成大写,格式:"字符串".upper() >>> "y".upper() 'Y'
## 判断字符串中是否符合规则
# 判断字符串以某个字符结尾,返回True或False,格式:"字符串".endswith("字符") >>> "chenliang".endswith("g") True >>> "chenliang".endswith("c") False # 判断字符串以某个字符开始,返回True或False,格式:"字符串".startswith("字符") >>> "chenliang".startswith("c") True >>> "chenliang".startswith("g") False # 判断字符串是否全是小写字母,返回True或False,格式:"字符串".islower() >>> "chenliang".islower() True >>> "Chenliang".islower() False # 判断字符串是否全是大写字母,返回True或False,格式:"字符串".isupper() >>> "chenliang".isupper() False >>> "ChenLiang".isupper() False >>> "CHENLIANG".isupper() True # 判断字符串是否全是整数,返回True或False,格式:"字符串".isdigit() >>> "1".isdigit() True >>> "0".isdigit() True >>> "-1".isdigit() False >>> "2chenliang".isdigit() False # 判断字符串是否是空格(只是空格哈),返回True或False,格式:"字符串".isspace() >>> "".isspace() False >>> " ".isspace() True >>> " c".isspace() False
## 替换or去掉字符串中的某些字符
# 去掉字符串两边的特殊字符,格式:"字符串".strip() >>> " chenliang ".strip() 'chenliang' >>> >>> " chenliang \n".strip() 'chenliang' # 去掉字符串右边的特殊字符,格式:"字符串".rstrip() >>> " chenliang ".rstrip() ' chenliang' >>> >>> " chenliang \n".rstrip() ' chenliang' # 去掉字符串左边的特殊字符,格式:"字符串".lstrip() >>> " chenliang ".lstrip() 'chenliang ' >>> >>> "\nchenliang ".lstrip() 'chenliang ' # 替换字符串中的一个或多个字符,格式:"字符串".replace("替换字符","替换成什么字符") >>> "chenliang".replace("chen","ren") 'renliang'
## 字符串的格式化
# 将字符串转换成列表,格式:"字符串".split("分隔符");分隔符默认是空格; >>> "chenliang lili lanlan".split() ['chenliang', 'lili', 'lanlan'] >>> >>> "chenliang lili lanlan".split(" ") ['chenliang', 'lili', 'lanlan'] # 将字符串转换成列表,格式:"字符串".rsplit("分隔符");分隔符默认是空格; >>> "chenliang lili lanlan".rsplit() ['chenliang', 'lili', 'lanlan'] >>> >>> "chenliang lili lanlan".rsplit(" ") ['chenliang', 'lili', 'lanlan'] # 将列表中的元素拼接成字符串,格式:"分隔符".join(列表) >>> list = ["chenliang","lili","lanlan"] >>> "-".join(list) 'chenliang-lili-lanlan' >>> >>> ":".join(list) 'chenliang:lili:lanlan' # "my name is {0},i like {1}".format("0对应的值","1对应的值") >>> "my name is {0},i like {1}".format("chenliang","python") 'my name is chenliang,i like python' >>> # "my name is {name},i like {course}".format(name="对应的值",course="对应的值") >>> "my name is {name},i like {course}".format(name="chenliang",course="python") 'my name is chenliang,i like python' >>>
## 字符串的切片操作
##################### 从字符串的左边开始 ################################################ ##################### 要么取开头、要么取中间、要么从某个字符取到最后)################### ## 取字符串的前N个字符(取字符串的第1个字符到第5个字符) >>> name = "ABCDEFGHabcdefg" >>> name 'ABCDEFGHabcdefg' >>> >>> name[:5] 'ABCDE' >>> >>> name[:5:] 'ABCDE' >>> >>> name[:5:1] 'ABCDE' ## 取字符串中间的N个字符(取字符串的第2个字符到第5个字符) >>> name 'ABCDEFGHabcdefg' >>> >>> name[1:5] 'BCDE' >>> >>> name[1:5:] 'BCDE' >>> >>> name[1:5:1] 'BCDE' ## 从字符串中间某个字符取到最后(从字符串中的第4个字符取到最后) >>> name 'ABCDEFGHabcdefg' >>> >>> name[3:] 'DEFGHabcdefg' >>> >>> name[3::] 'DEFGHabcdefg' >>> >>> name[3::1] 'DEFGHabcdefg' ##################### 从字符串的左边开始(排除右边的字符)############################## ## 取字符串中除了最后N个字符外的所有字符(排除字符串右边8个字符) >>> name 'ABCDEFGHabcdefg' >>> >>> name[:-8] 'ABCDEFG' >>> name[:-8:] 'ABCDEFG' >>> >>> name[:-8:1] 'ABCDEFG' ##################### 从某个字符跨步N个字符开始取####################################### ## 从第1个字符开始,每跨2个字符开始取 >>> name 'ABCDEFGHabcdefg' >>> >>> name[::2] 'ACEGaceg' ## 从第2个字符开始,每跨2个字符开始取 >>> name 'ABCDEFGHabcdefg' >>> >>> name[1::2] 'BDFHbdf' ##################### 反转字符串 ######################################################## ## 反转字符串(前队变后队) >>> name 'ABCDEFGHabcdefg' >>> >>> name[-1::-1] 'gfedcbaHGFEDCBA' ## 反转字符串(前队变后队,每隔2个字符去除) >>> name 'ABCDEFGHabcdefg' >>> >>> name[-1::-2] 'gecaGECA'