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'