字符串的介绍
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。
字符串的索引和切片
字符串的索引
字符串是一个有序的集合,其中的每个字符可通过偏移量进行索引或分片。
字符串中的字符按从左到右的顺序,其偏移量依次为:0、1、2.....len-1(最后一个字符偏移量为字符串长度减1);
按从右到左的顺序,偏移量取负值,依次为: -len......-2、-1
str1 = "Hello,World"
print(str1[6])
print(str1[-3])
# w
# r
索引可获得指定位置的单个字符,但不能通过索引来修改字符串。因为字符串对象不允许被修改
字符串的切片
字符串的切片也称分片,它利用索引范围从字符串中获得连续的多个字符(即子字符串)
正常字符串切片的基本格式如下[start : end ]
返回字符串x中从偏移量start开始、到偏移量end之前的子字符串。
start和end参数均可省略,start默认为0,end默认为字符串长度
str1 = "Hello,World"
print(str1)
print(str1[2:4])
print(str1[:5])
print(str1[6:])
# Hello,World
# ll
# Hello
# World
切片的步长 str[start:end:step] 默认步长为1
str1 = "Hello,World"
print(str1[2:8])
print(str1[2:8:2])
print(str1[2:8:3])
# llo,Wo
# loW
# l,
将字符串反序返回
str1 = "Hello,World"
print(str1[::-1])
# dlroW,olleH
字符串的长度
字符串长度指字符串中包含的字符个数
可用len()函数获得字符串长度>>> len("abcdef")
str2 = "abcdefg"
print(len(str2))
# 7
字符串的转换
str() 函数将非字符串数据转换为字符串
x = 123
print(type(x))
y= str(x)
print(y)
print(type(y))
# <class 'int'>
# 123
# <class 'str'>
字符串常见处理方法
字符串大小写转换
str.capitalize()
将字符串首字母转换为大写字母,其余变成小写
string1 = "abcabc abcAbc"
print(string1.capitalize())
# Abcabc abcabc
str.upper()
将字符串中的小写字母全部转换为大写字母
string1 = "ABCabcABCabc"
print(string1.upper())
# ABCABCABCABC
str.lower()
将字符串中大写字母全部转换为小写
string1 = "ABCabcABCabc"
print(string1.lower())
#abcabcabcabc
str.title()
将字符串中每个单词的首字母转换为大写字母,其余小写
string1 = "abcAbc abcAbc"
print(string1.title())
# Abcabc Abcabc
str.swapcase()
将字符串中字符大小写互换
string = "Hello World"
print(string.swapcase())
# hELLO wORLD
str.isupper()
判断字符串中字母字符是否全部为大写字母,若是,返回True,若不是,返回False
print("abcABC123".isupper())
print("ABC123".isupper())
print("ABC".isupper())
# False
# True
# True
str.islower()
判断字符串中字母字符是否全部为小写字母,若是,返回True,若不是,返回False
print("abcABC123".islower())
print("abc123@#".islower())
print("abc".islower())
# False
# True
# True
字符串的统计
str.count()
统计字符串中某个字符或字符串出现的次数,
str.count(sub,start,end) start,end 划定起始位置
string1 = "abcabcabcabc"
print("字符串中字符'a'出现的次数为:",string1.count('a'))
print("字符串中字符'ab'出现的次数为:",string1.count('ab'))
print("字符串中字符'a'从下表3-7出现的次数为:",string1.count('a',3,7))
print("字符串中字符'ab'从下表3-7出现的次数为:",string1.count('ab',3,7))
# 字符串中字符'a'出现的次数为: 4
# 字符串中字符'ab'出现的次数为: 4
# 字符串中字符'a'从下表3-7出现的次数为: 2
# 字符串中字符'ab'从下表3-7出现的次数为: 1
str.startswith()断字符串是否以某个字符或某个字符串开始
str.endswith() 断字符串是否以某个字符或某个字符串结束
string1 = "abcabcabcabc"
print("字符串是否以字符'a'开始:",string1.startswith('a'))
print("字符串是否以字符'ab'开始:",string1.startswith('ab'))
print("字符串是否以字符'c'结束:",string1.endswith('c',3,7))
print("字符串是否以字符'ac'开始:",string1.endswith('ac'))
# 字符串是否以字符'a'开始: True
# 字符串是否以字符'ab'开始: True
# 字符串是否以字符'c'结束: False
# 字符串是否以字符'ac'开始: Fals
expandtabs() 将字符串中的tab字符转换为空格输出,参数默认为8
如果字符串不足8个,就字符加空格补足8位,字符串超过8位,就字符加空格补足16位
str1 = "123\t456\t789\ta"
print(str1)
print("字符串str1输出为:",str1,",其长度为:",len(str1))
print("转换后字符串str1输出为:",str1.expandtabs(),"其长度为:",len(str1.expandtabs()))
print("转换后字符串str1输出为:",str1.expandtabs(3),"其长度为:",len(str1.expandtabs(2))) #指定参数后,tab键转换为相应的空格个数
# 123 456 789 a
# 字符串str1输出为: 123 456 789 a ,其长度为: 13
# 转换后字符串str1输出为: 123 456 789 a 其长度为: 25
# 转换后字符串str1输出为: 123 456 789 a 其长度为: 13
字符串的查找与替换
str.find(sub[, start[, end]])
查找字符串中是否包含字串,若包含则返回子串首次出现的位置,否则返回-1。 sub:指定要查找的子串。
start:开始索引,默认为0。
end:结束索引,默认为字符串的长度。
str1 = "Python"
print("字符串str1中是否含有字符t:",str1.find('t'))
print("字符串str1中是否含有字符t:",str1.find('n',0,3))
# 字符串str1中是否含有字符t: 2
# 字符串str1中是否含有字符t: -1
str.index()方法与find方法功能一样,区别:找不到会报错
str.replace() 字符串查找 将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串
str.replace(old, new[, count])
count:表示替换旧字符串的次数,默认全部替换。
str1 = "abcabcabcabc"
print(str1.replace("a","A",2))
# AbcAbcabcabc
str.isalnum()
判断字符串是否只包含字母、数字和语言字符(中文,英文等各国语言),若是,则返回True,若还有其他字符,则返回False
str2 = "abc123&"
print(str2.isalnum())
print("abc123你好".isalnum())
# False
# True
str.isalpha()
判断字符是否只包含语言字符(中文,英文等各国语言),若是,则返回True,若不是只有字母,则返回False
str2 = "abcAB"
print(str2.isalpha())
print("abc123".isalpha())
print("abc你好".isalpha())
# True
# False
# True
str.isdecimal()
判断字符串中字符是否全部为数字
print("12334","13434".isdecimal())
print("12334abc","13434abc".isdecimal())
print("12334@","13434@".isdecimal())
# 12334 True
# 12334abc False
# 12334@ False
str.isspace()
判断字符串中是否全部为空格
print(" ".isspace())
print(" a ".isspace())
print(" \n ".isspace())
print(" \t ".isspace())
print(" \' ".isspace())
# True
# False
# True
# True
# False
字符串的分割与拼接
str.split()
方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。
str.split(sep,maxsplit)
sep :分隔符,默认为空字符
maxsplit:分割次数,默认值为-1,不限制分割次数
string = "Hello, my name is Wang Hong"
print(string.split())
print(string.split('n'))
print(string.split('n',2))
# ['Hello,', 'my', 'name', 'is', 'Wang', 'Hong']
# ['Hello, my ', 'ame is Wa', 'g Ho', 'g']
# ['Hello, my ', 'ame is Wa', 'g Hong']
删除字符串的指定字符
str.strip() 默认删除字符串中首尾的空格、换行、tab字符,可删除指定字符
str1 = " \n \t #*abc123*# \n \t"
print(str1)
print(str1.strip()) #默认删除首尾空格、换行、tab
str2 = "#*abc123*#"
print(str2.strip('#')) #删除首尾指定的#
# #*abc123*#
# #*abc123*#
# *abc123*
字符串的对齐
str.center(width[,fillchar]) 返回长度为width的字符串,原字符串居中显示,默认用空格填充源字符串到width.
str1 = "abc123def"标签:字符,str1,print,字符串,True,string1 From: https://blog.51cto.com/u_15325450/5889124
print(str1.center(12))
print(str1.center(12,'*'))
# abc123def
# *abc123def**