简介
- 字符串是以单引号或双引号括起来的任意文本
'abc'
"abc"
2.创建字符串
str1 = "learn python3!"
3.输出字符串
print('abc') #输出结果abc
print(''abc'') #输出结果abc
print(str1) #输出结果learn python3!
字符串运算
- 字符串连接
str1 = "hello "
str2 = "world!"
str3 = str1 + str2
print("str3 =", str3) #输出结果str3 = hello world!
2.输出重复字符串
str1 = "hi"
str2 = str1 * 3
print("str2 =", str2) #输出结果str2 = hihihi
3.访问字符串中的某一个字符
#通过索引下标查找字符,索引从0开始
#字符串名[下标]
str1 = "hello!"
print(str1[1]) #输出结果e
4.截取字符串中的一部分
(1)字符串名[开始下标:结束下标],属于闭开区间
str1 = "hello world i am a girl!"
str2 = str1[7:17]
print("str2 =", str2) #输出结果str2 = orld i am a
(2)从头截取到给定下标之前,不包括结束下标
str3 = str1[0:6] #还可写成str1[:6]
print("str3 =", str3) #输出结果str3 = hello w
(3)从给定下标处开始截取到结尾
str4 = str1[18:]
print("str4 =", str4) #输出结果str4 = girl!
5.判断给出的字符串是否存在
str1 = "hi girl"
print("hi" in str1) #输出结果True
print("girls" not in str1) #输出结果True
6.格式化输出
# %d %s %f 占位符
# %d 打印整数
# %s,表示格式化一个对象为字符
# %f 打印浮点数
num = 10
print("num = %d" % num) #输出结果num = 10
str1 = "this"
f = 10.1234
#%.2f精确到小数点后3位,会四舍五入
print("num = %d, str1 = %s, f = %.2f" % (num, str1, f)) #输出结果num = 10, str1 = this, f = 10.12
7.字符串比较大小
#从第一个字符开始比较,谁的ASCII码值大,谁就大
#如果第一个字符相等,则比较第二个以此类推
print("bc" > "ad") #输出结果:True
字符串函数
- eval(str)函数
功能:将字符串str当成有效的表达式来求值并返回计算结果
num1 = eval("12+3")
print("num1的值为:%d" % num1) #输出结果:num1的值为:15
print(type(num1)) #输出结果:<class 'int'>
print(eval("-123")) #输出结果:-123
print(eval("12-3")) #输出结果:9
print(eval("12a3")) #无法计算,报错
2.len(str)函数
功能:返回字符串的长度(字符个数,不是字节数,一个中文是一个字符)
print(len("你好")) #输出结果:2
3.str.lower()函数
功能:转换字符串中大写字母为小写字母,原字符串不变
str1 = "Hello World!"
print(str1.lower()) #输出结果:hello world!
print(str1) #输出结果:Hello World!
4.str.upper()函数
功能:转换字符串中小写字母为大写字母,原字符串不变
str1 = "Hello World!你好,世界"
print(str1.upper()) #输出结果:HELLO WORLD!你好,世界
print(str1) #输出结果:Hello World!你好,世界!
5.str.swapcase()
功能:转换字符串中小写字母为大写字母,大写变小写,原字符串不变
str1 = "Hello World!你好,世界"
print(str1.swapcase()) #输出结果:hELLO wORLD!你好,世界
6.str.capitalize()
功能:首字母大写,其他小写,原字符串不变
str1 = "hello world!你好,世界"
print(str1.capitalize()) #输出结果:Hello world!你好,世界
7.str.title()
功能:每个单词的首字母大写,其他小写,原字符串不变
str1 = "hello world!"
print(str1.title()) #输出结果:Hello World!
8.str.center(width[,fillchar])
功能:返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认是空格填充
str1 = "hello world!"
print(str1.center(20,"@")) #输出结果:@@@@hello world!@@@@
9.str.ljust(width[,fillchar])
功能:返回一个指定宽度的左对齐字符串,fillchar为填充的字符串,默认是空格填充
str1 = "hello world!"
print(str1.ljust(20,"@")) #输出结果:hello world!@@@@@@@@
10.str.rjust(width[,fillchar])
功能:返回一个指定宽度的右对齐字符串,fillchar为填充的字符串,默认是空格填充
str1 = "hello world!"
print(str1.rjust(20,"@")) #输出结果:@@@@@@@@hello world!
11.str.zfill(width)
功能:返回一个指定宽度的字符串,左侧用0填充
str1 = "hello world!"
print(str1.zfill(20)) #输出结果:00000000hello world!
12.str.count(s[,start][,end])
功能:返回str字符串中s字符串出现的次数,可以指定一个范围,不指定范围默认从头到尾
str1 = "hello hi hi hi world!"
print(str1.count("hi")) #输出结果:3
print(str1.count("hi",14,len(str1))) #输出结果:0
13.str.find(s[,start][,end])
功能:从左向右检测s字符串是否包含在字符串中,可以指定范围,不指定范围默认从头到尾
返回的结果是s字符串第一次出现的开始下标,没有则返回-1
str1 = "hello hi hi hi world!"
print(str1.find("hi")) #输出结果:6
print(str1.find("hi",14,len(str1))) #输出结果:-1
14.str.index(s[,start][,end])
跟find()一样,只不过如果s不存在的时候会报异常
功能:从左向右检测s字符串是否包含在字符串中,可以指定范围,不指定范围默认从头到尾
返回的结果是s字符串第一次出现的开始下标
str1 = "hello hi hi hi world!"
print(str1.index("hi")) #输出结果:6
print(str1.index("hi",0,15)) #输出结果:6
print(str1.index("ddd")) #找不到会报异常
15.str.rindex(s[,start][,end])
跟rfind()一样,只不过如果s不存在的时候会报异常
功能:从右向左检测s字符串是否包含在字符串中,可以指定范围,不指定范围默认从头到尾
返回的结果是s字符串第一次出现的开始下标
str1 = "hello hi hi hi world!"
print(str1.rindex("hi")) #输出结果:12
print(str1.rindex("hi",0,15)) #输出结果:12
print(str1.rindex("ddd")) #报错
16.str.lstrip(s)
功能:截取str左侧的指定的字符,默认为空格
str1 = " hello world!"
print(str1.lstrip()) #输出结果:hello world!
str1 = "*****hello world!"
print(str1.lstrip("*")) #输出结果:hello world!
17.str.rstrip(s)
功能:截取str右侧的指定的字符,默认为空格
str1 = "hello world! "
print(str1.rstrip()) #输出结果:hello world!
str1 = "*****hello world!*****"
print(str1.rstrip("*")) #输出结果:*****hello world!
18.str.strip(s)
功能:截取str左右两侧的指定的字符,默认为空格
str1 = "****hello world!****"
print(str1.strip("*")) #输出结果:hello world!
19.ord(s)、chr(n)
ord(s)功能:返回字符的ASCII码值
chr(n)功能:返回ASCII码值对应的字母
str1 = "c"
print(ord(str1)) #输出结果:99
print(chr(90)) #输出结果:Z
20.split(str="",num)
#以str为分隔符截取字符串,指定num,则仅截取num个字符串
str1 ="hello*wirld*!*你好*,*世界"
#输出结果:['hello', 'wirld', '!', '你好', ',', '世界']
print(str1.split("*"))
#只截取3次,剩余部分是一个整体
#输出结果:['hello', 'wirld', '!', '你好*,*世界']
print(str1.split("*",3))
21.splitlines([keepends]) 按照('\r', '\r\n', \n' )分隔,按行切割,keeppends == True 会保留换行符,默认是False
str1 ='''hello world!
hello world!
hello world!'''
print(str1.splitlines()) #输出结果:['hello world!', 'hello world!', 'hello world!']
print(str1.splitlines(True)) #输出结果:['hello world!\n', 'hello world!\n', 'hello world!']
22.str.join(seq),以指定的字符串str分隔符,将seq中的所有元素组合成一个字符串
list1 = ["hello", "world!", "你好", "世界!"]
str2 = " ".join(list1)
str3 = "*".join(list1)
print(str2) #输出结果:hello world ! 你好 ! 世界
print(str3) #输出结果:hello*world!*你好*世界!
23.max(str),求字符串最大的元素,按Ascii来比较的
str1 = "hello"
print(max(str1)) #输出结果:o
24.min(str),求字符串最小的元素,按Ascii来比较的
str1 = "hello"
print(min(str1)) #输出结果:e
25.replace(old,new,num)将字符串num个的old替换成new,num不写默认为全部
str1 = "hello hi hi hi world!"
str2 = str1.replace("hi", "你好") #全部替换
print(str2) #输出结果:hello 你好 你好 你好 world!
str3 = str1.replace("hi", "你好", 1) #只替换一次
print(str3) #输出结果:hello 你好 hi hi world!
26.startswith(str[,start=0][end=len(str)]),在给定的范围内检查是否是以给定的字符串开头,默认整个字符串
str1 = "hello world!"
print(str1.startswith("hello")) #输出结果:True
print(str1.startswith("hi")) #输出结果:False
print(str1.startswith("world", 6, 15)) #输出结果:True
27.endswith(str[,start=0][end=len(str)]),在给定的范围内检查是否是以给定的字符串结尾,默认整个字符串
str1 = "hello world!"
print(str1.endswith("world")) #输出结果:False
print(str1.endswith("world!")) #输出结果:True
print(str1.endswith("hello", 5, 16)) #输出结果:False
网友评论