字符串
1.字符串的定义
带引号的内容就是字符串.
在 python 中,字符串可以乘上⼀个整数
字符串 * num
#单引号
name = 'isaac'
print(type( name ),name)
#双引号
name = "isaac"
print(type(name),name)
#三引号
my_str = """hello worldhello hanser!
"""
print(type(my_str))
my_str = '''hello worldhello 泠鸢
'''
print(type(my_str))
#如果字符串本身包含单引号,使用双引号定义,如果包含双引号可以使用单引号定义,或者统一使用三引号引号
# my name is 'isaac "
my_name = " my name is 'isaac' "
' * ' *30
'*****************************************************************************'
Python使用反斜杠“\”转义
2 字符串的输出和输出
输⼊ input()
input() 函数得到的内容就是字符串
输出 print() 函数 %s
f-string
3 下标
my_str = 'hanser'
#下标的使用语法 变量[下标]
print(my_str[0]) #h
print(my_str[1]) #a
print(my_str[-1]) #r
print(my_str[-3]) #s
#Len()函数可以得到字符串的长度
print(len(my_str)) # 6
#使用正数下标书写字符串中最后一个元素
print(my_str[ len(my_str) - 1])
0 | 1 | 2 | 3 | 4 | 5 | 正数 |
h | a | n | s | e | r | |
-6 | -5 | -4 | -3 | -2 | -1 | 负数 |
4 切⽚
my="hello"
my[:] 得到和原来⼀样的字符串
my[::-1] 字符串的逆置
#切片可以获取一段数据,多个数据,下标(索引只能获得一个数据)
#切片语法:变量[start:end :step],会得到一个新的字符串
#start开始位置的下标
# end结束位置的下标,不包含end对应的下标
# step步长,下标之间的间隔,默认是1
my_str = 'haser'
my_str1 = my_str[2:4:1]
print(my_str1)
# step如果是1 ,即默认值,可以不写
my_str2 = my_str[2:4]
print(my_str2)
# end 位置不写,表示是Len() ,即可以取到最后一个元素
my_str3 = my_str[2: ]
print(my_str3)
#start位置也可以省略不写,表示0
my_str4 = my_str[ : 3]
print(my_str4)
5 查找⽅法
find() & rfind()
my _str = ' hello wor1d itcast and itcastcpp'
#find()在字符串中查找是否存在某个字符串
# my_str.find(sub_str, start, end)
# sub_str:要在字符串中查找的内容,类型str
# start:开始位置,从哪里开始查找,默认是0
# end :结束的位置,查找到哪里结束,默认是Len( )
#返回值:即方法执行的结果是什么,如果找到 sub_str ,返回的sub_
#如果没有找到,返回-1
index = my_str.find( ' he11o') # 0
print(index)
#从下标为3的位置,开始查找字符串 hello
print(my_str.find( " he1lo' ,3)) #-1
print(my_str.find( 'itcast ')) #12
print(my_str.find( "itcast', 15)) #23
#rfind()right find()从右边(后边)开始查找
print(my_str.rfind( 'itcast' )) #23
p
index & rindex()
#index()在字符串中查找是否存在某个字符串
# my_str.index ( sub_str, start, end)l
# sub_str:要在字符串中查找的内容,类型str
# start:开始位置,从哪里开始查找,默认是0
# end:结束的位置,查找到哪里结束,默认是Len()
#返回值:即方法执行的结果是什么,如果找到 sub_str ,返回的sub_str在 my_str中的位置的正数下标
#如果没有找到,会报错
print(my_str.index( ' hello')) # 0
# print(my_str.index( ' hello ', 3)) # 没有找到,代码会报错
# rindex()从后边开始查找
print(my_str.index( 'itcast ' )) #12
print(my_str.rindex( ' itcast' )) #23
统计出现次数
count()
#count( sub_str, start, end)统计出现的次数,
print(my_str.count( ' aaaa'))#0
print(my_str.count( ' he1lo'))#1
print(my_str.count( 'itcast'))#2
print(my_str.count( 'itcast', 20))# 1
6 字符串替换⽅法
replace
# my_str.replace(old_str, new_str, count)字符串的替换,将my_str中的 old_str替换成new_str
# oLd_str:将要被替换的字符串
# new_str:新的字符串,替换成的字符串
#count:替换的次数,默认是全部替换
#返回值:得到一个新的字符串,不会改变原来的字符串
my_str = "hello world itcast and itcastcpp'
my_str1 = my_str.replace( 'itcast' , 'itheima ' )
print( " my_str : ', my_str)
print( ' my_str1: ', my_str1)
my_str2 = my_str.replace( 'itcast ', 'itheima ', 1)#替换一次
print( " my_str2 : ', my_str2)
7 字符串分隔
split
my_str = 'hello wor1d itcast and itcastcpp'
# my_str.split(sub_str, count)将my_str字符串按照sub_str进行切割,
# sub_str:按照什么内容切割字符串,默认是空白字符,空格,tab键
#count:切割几次,默认是全部切割
#返回值:列表[]
result = my_str.split()#按照空白字符,全部切割
print(result)
print(my_str.split( 'itcast ' ))
print(my_str.split( 'itsast ', 1))#切割一次,
print(my_str.rsplit( 'itcast' , 1))
8 字符串连接
join
#my_str.join(可迭代对象)
#可迭代对象, str,列表(需要列表中的每一个数据都是字符串类型)
#将my_str这个字符串添加到可迭代对象的两个元素之间
#返回值:一个新的字符串,不会改变原字符串的值
my_str = '_'.join( ' hello') #会把_加入到 helLo每两个元素之间即h_e_L_l_0
print(my_str)
print( '_*_'.join( " he1lo')) # h_*_e_*_L_*_L_*_o
#定义列表
my_list = [ hello', 'cpp', 'python ' ]
print( "_".join(my_list))# heLlo_cpp_python
print( "_*_".join(my_list))# helLo_*_cpp_*_python
print( " ".join(my_list))# hello cpp python