十、python字符串str
1.字符串的定义与输入
在python中,用引号引起来的都是字符串。还有input函数输入的, str()函数转换的等。
string1="hello"
string2='hello'
string3="""hello
python"""
string4='''hello
world'''
string5=input("input anything: ")
string6=str(18)
print(isinstance(string3,str)) # isinstance函数可以用来判断数据是否为某一个数据类型,返回值为
True或False
2.字符串的拼接
name="daniel"
str1="==="+name+"==="
str2="===%s==="%(name)
str3="==={}===".format(name)
print(str1)
print(str2)
print(str3) # 三种方法结果一样
3.字符串的下标
字符串,列表,元组都属于序列,所以都会有下标。
将字符串遍历打印
str1="hello,python"
for i in str1: # 直接用for循环遍历字符串
print(i,end=" ")
将字符串遍历打印,并对应打印出下标
str1="hello,python"
for i,j in enumerate(str1):
print(i,j) # i打印下标,j打印字符串的值
4.字符串的切片,倒序
字符串,列表,元组都属于序列,所以都可以切片。
a="abcdefg"
print(a[0:3]) # 取第1个到第3个字符(注意,不包含第4个)
print(a[2:5]) # 取第3个到第5个字符(注意,不包含第6个)
print(a[0:-1]) # 取第1个到倒数第2个(注意:不包含最后一个)
print(a[1:]) # 取第2个到最后一个
print(a[:]) # 全取
print(a[0:5:2]) # 取第1个到第5个,但步长为2(结果为ace)
print(a[::-1]) # 字符串的倒序(类似shell里的rev命令)
5.字符串的常见操作
abc="hello,nice to meet you"
print(len(abc)) # 调用len()函数来算长度
print(abc.__len__()) # 使用字符串的__len__()方法来算字符串的长度
print(abc.capitalize()) # 整个字符串的首字母大写
print(abc.title()) # 每个单词的首字母大写
print(abc.upper()) # 全大写
print(abc.lower()) # 全小写
print("HAHAhehe".swapcase()) # 字符串里大小写互换
print(abc.center(50,"*")) # 一共50个字符,字符串放中间,不够的两边补*
print(abc.ljust(50,"*")) # 一共50个字符,字符串放中间,不够的右边补*
print(abc.rjust(50,"*")) # 一共50个字符,字符串放中间,不够的左边补*
print(" haha\n".strip()) # 删除字符串左边和右边的空格或换行
print(" haha\n".lstrip()) # 删除字符串左边的空格或换行
print(" haha\n".rstrip()) # 删除字符串右边的空格或换行
print(abc.endswith("you")) # 判断字符串是否以you结尾
print(abc.startswith("hello")) # 判断字符串是否以hello开始
print(abc.count("e")) # 统计字符串里e出现了多少次
print(abc.find("nice")) # 找出nice在字符串的第1个下标,找不到会返回-1
print(abc.rfind("e")) # 找出最后一个e字符在字符串的下标,找不到会返回-1
print(abc.index("nice")) # 与find类似,区别是找不到会有异常(报错)
print(abc.rindex("e")) # 与rfind类似,区别是找不到会有异常(报错)
print(abc.isalnum()) # 判断abc是否是字母或者(十进制)数字
print(abc.isalpha()) # 判断abc是否为字母
print(abc.isdecimal()) # 判断abc是否只包含十进制字符
print(abc.isdigit()) # 判断abc是否是十进制数字0-9
print(abc.islower()) # 判断abc是否为小写字母,也就是是否属于a~z
print(abc.isnumeric()) # 判断abc是否是数
print(abc.isspace()) # 检查abc是否为空白字符
数字,字符串,元组是不可变类型.下面的操作可以替换字符串的值,但原字符串没有改变。
aaa="hello world,itcast"
bbb=aaa.replace('l','L',2) # 从左到右,把小写l替换成大写L,并且最多只替换2个
print(aaa) # 原值不变
print(bbb) # 改变的值赋值给了bbb变量,所以这里看到的是替换后的值
print("root:x:0:0".split(":")) # 以:为分隔号,分隔成列表
print("root:x\n:0:0".splitlines()) # 以\n为分隔号,分隔成列表
字符串的join操作
print(" ".join(['df', '-h'])) # 把列表里的元素以前面引号里的分隔符合成字符串
小结
下标:就类似一个字符串里的字符编号,通过下标可以很轻松找到第N个字符
循环遍历:可以把字符串里所以字符都循环操作
切片:通过下标得到字符串一定范围的字符
格式:字符串[起始下标:结束下标(但不包含):步长],里面都可以用负数,如果步长为负数,表示从右到左进行切片。