1.字符串中的元素
1.1阻止转义
在字符串的最前面加r/R来阻止字符串中的转义字符转义
str1=r"how are \n you"
print(str1) #输出how are \n you
1.2获取字符串中的元素
python中字符串可以看成一个序列(容器),容器内容是字符。每一个字符可以称为字符串中的元素。字符串是一个不可变序列,是有序的。
获取单个字符
python中每一个字符都会对应一个下标,下标根据字符在字符串中的位置,从前往后依次增加(第一个下标为0或者-1)
语法:字符串[下标]--->根据下标获取字符串的字符,字符串可以是字符串的变量,也可以是字符串值,下标为0字符串长度减一,或者-1 -长度(-1表示最后一个字符)
str(python) | p | y | t | h | o | n |
---|---|---|---|---|---|---|
下标(0开始) | 0 | 1 | 2 | 3 | 4 | 5 |
下标(-1~-长度) | -6 | -5 | -4 | -3 | -2 | -1 |
str1="python"
print(str1[0])
print(str1[-6])#两者输出相同
获取字符串中的部分字符
语法1: 字符串[起始坐标:结束下标] --->获取字符串中从起始坐标开始到结束坐标前的所有字符
str1="同九年,汝何秀"
print(str1[1:5]) #输出 九年,汝
语法2(切片):字符串[起始下标:结束下标:步长] --->从起始下标开始获取,每步长获取一个,获取到结束下标前为止。步长为正,从前往后取(起始坐标对应的字符要在结束坐标对应的字符前面,否则取不到值);步长为负,从后往前取(起始坐标对应的字符要在结束坐标对应的字符后面,否则取不到值)。
str1="0123456"
print(str1[0:5:1]) #输出01234
print(str1[0:5:2]) #输出024
print(str1[5:0:-1]) #输出54321
print(str1[5:0:-2]) #输出531
print(str1[0:-1]) #除最后一个,全部打印
print(str1[0:1000000])#全部打印
print(str1[-5:-2])#负数小的在前
切片时下标可以省略,省略不同的下标有不同的意义
省略起始坐标 :
字符串[:结束下标] --->从开头开始取
字符串[:结束坐标:负的步长] -->从结尾开始取
省略结束坐标:
字符串[开始坐标:] --->从开始坐标处取到最后。
字符串[开始坐标::-1]--->从开始坐标处取,取到最前面。
省略坐标 :
字符串[:]---->全部取完
字符串[::-1] ---->产生一个逆序的字符串
注意 :切片下标可以越界
str1="0123456"
print(str1[0:5:1]) #输出01234
print(str1[0:5:2]) #输出024
print(str1[5:0:-1]) #输出54321
print(str1[5:0:-2]) #输出531
print(str1[0:-1]) #除最后一个,全部打印
print(str1[0:1000000])#全部打印
print(str1[-5:-2])#负数小的在前
print(str1[:2])
print(str1[:2:-1])
print(str1[:])
print(str1[::-1])
print(str1[:-2:-1])
print(str1[2::-1])
print(str1[2:])
2.字符串运算符
python中的字符串支持+ ,*和比较运算符
2.1字符串的+号运算符 :
字符串1+字符串2 ----->将两个字符串拼接在一起,产生了一个新的字符串.
str1="012345"
str2="6789"
print(str1+str2) #输出0123456789
2.2字符串的*号运算符 :
字符串1*n(整数)----->字符串1重复n次,产生一个新的字符串。
str1="12"
print(str1*3) #输出121212
2.3字符串的比较运算符 :
比较大小时比较第一个字符的Unicode编码,如果相同,比较后一个字符。
print("abc"=="abc") #True
print("abc">"bc") #False
print("dbc">"bc") #True
char="a"
print("0"<=char<="9") #false
print("a"<=char<="z" or "A"<=char<="Z") #True
2.4 in 和not in
字符串1 in 字符串2 ---->判断字符串1是否在字符串2中,结果为bool
字符串1 not in 字符串2 ---->判断字符串1是否不在字符串2中,结果为bool
print("ab" in "abcd") #True
print("ab" not in "abce") #False
2.5 len()函数
len()是python的内置函数,功能是获取序列的长度(容器中的元素个数)
print(len("0123456")) #7
print(len("\u1234")) #1
2.6 格式字符串
字符串的内部,通过格式占位符来表示字符串中变化的部分,然后在后面用值来填充变化的部分
语法: 带有占位符的%(给占位符的值)。注意: 前面有多少个占位符,后面()中就必须有多少个值,并且类型要对应。
%s ----->字符串 ;%d ----->整数 ; %f---->小数
name="张三"
age=19
money=20.33
# message="姓名:"+name+"年龄:"+str(age)
message="姓名%s 年龄:%d 钱%f" %(name,age,money)
print(message) #姓名张三 年龄:19 钱20.330000
3.字符串内置函数
3.1 capitalize()
将字符串的第一个字符转换为大写,返回一个新的字符串,如果第一个字符不是字母,就不转换。
str1="love"
print(str1.capitalize()) #Love
3.2字符串对齐
1.center(width,fillchar) 居中 2.ljust(width,fillchar)靠左 3.rjust(width,fillchar)靠右
width:指出新的字符串长度,fillchar:长度不足时用来填充的字符。
str1="xxx"
print(str1.center(7,"0"))
print(str1.ljust(7,"0"))
print(str1.rjust(7,"0"))
#输出:00xxx00 xxx0000 0000xxx
3.3子字符串个数
字符串1.count(字符串2) ---->统计字符串1中字符串2的个数
print("abcdsdfABab".count("ab")) #2
3.4结尾字符
字符串1.endswith(字符串2)----->判断字符串1是否是以字符串2结尾
print("askfjhk".endswith("hk"))
3.5查找子字符串
字符串1.find(字符串2) ---->在字符串1中查找字符串2,如果有,返回子字符串的开始坐标,没有,返回-1
print("bacd ejj hk".find("hk")) #9
3.6其他
#isnumber()
print("12一二壹万".isnumeric()) #True 要全部为数字,中文数字也可以
#istitle()
print("Aslkaj Bjfd".istitle()) #True
#join()
print("ab".join("0123")) #0ab1ab2ab3