十、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.字符串的下标

字符串,列表,元组都属于序列,所以都会有下标。

python str变量编码 str1=python_python


将字符串遍历打印

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个字符
循环遍历:可以把字符串里所以字符都循环操作
切片:通过下标得到字符串一定范围的字符
格式:字符串[起始下标:结束下标(但不包含):步长],里面都可以用负数,如果步长为负数,表示从右到左进行切片。