目录
1.字符串
2.切片与下标
3.一些常用的函数操作
1.字符串
字符串: ‘带引号的内容就是字符串’ 单引号、双引号、三引号都可以
my_str = '''w'''
name = 'wrx'
age = "18"
print(type(my_str), my_str)
print(type(name), name)
print(type(age), age)
# <class 'str'> w
# <class 'str'> wrx
# <class 'str'> 18
如果字符串本身包含单引号,则使用双引号定义;如果包含双引号,可以用单引号定义,或者统一使用三引号
在python中,字符串可以乘以一个整数
ss = ' ** ** '
sss = ss * 2
print(sss)
# ** ** ** **
字符串输入 :
input()得到的就是字符串
字符串输出 :
name = 'wrx'
age = 18
print(age)
print('%s' % name)
print(f'我的名字是{name} 年龄是{age}') # 只要是引号就行 前面加f或F都行
# 18
# wrx
# 我的名字是wrx 年龄是18
2.切片与下标
# 0 1 2 3 4 支持正数下标(整数) 从0开始
# h e l l o
# -5 -4 -3 -2 -1 也支持负数下标 最后一个为-1
my_str = 'hello'
下标的使用语法:变量[下标]
print(my_str[-4])
# e
len()函数可以得到字符串的长度:
print(len(my_str)) # { len(my_str) - 1 } 即为最后一个元素的正数下标
# 5
对操作对象截取其中一部分 字符串、列表、元组都支持该操作 --> 会得到一个新的字符串
语法:
变量[起始:结束:步长]
选择的区间从'起始'位开始,到'结束'位的前一位结束(不包含结束位本身),步长表示选取间隔
切片可以获得一段数据(多个数据) 下标只能获得一个数据
# start 开始位置下标
# end 结束位置下标
# step 步长 下标之间的间隔 默认为1(为1时可不写) 可以为负数
从start到end 每间隔step取一次
my_str = 'hello'
my_str0 = my_str[:] # 得到和原来一样的字符串
my_str1 = my_str[0:5:2]
print(my_str1)
# hlo
my_str2 = my_str[0:2] # 默认step为1
print(my_str2)
# he
my_str3 = my_str[0::3] # end位置不写默认为len() 即可以取到最后一个元素 !! 但是冒号要写
print(my_str3)
# hl
my_str4 = my_str[:3] # start位置不写 默认为0 !! 但是冒号要写
print(my_str4)
# hel
my_str5 = my_str[-4:-1] # 也可以用负数下标
print(my_str5)
# ell
my_str6 = my_str[3:0:-1] # step为负数时 start可以小于end (倒着取)
print(my_str6)
# lle
my_str_ni = my_str[::-1] # 字符串的逆置
print(my_str_ni)
# olleh
3.字符串的常见操作
<1>. find
检测一个字符串a是否包含在字符串b中 如果是返回start索引值 不是返回-1
若my_str中存在多个str片段 找到第一个后即停止
my_str.find(str, start, end)
# str:要在字符串中查找的内容 类型也是str
# start:开始位置 从哪里开始查找 默认是0
# end:结束位置 查找到哪里结束 默认是len() 例如end=5 最后一个查找的下标为4
# 返回值:即方法执行的结果是什么 如果找到str 返回str在my_str中位置正数下标 没有找到返回-1
my_str = 'this world is very beautiful'
index = my_str.find('world', 0, 10)
print(my_str.find('world', 3, 5))
print(index)
# rfind 从右边(后边)开始查找
print(my_str.rfind('world'))
# -1
# 5
# 5
<2>.index
与find用法一致 唯一区别为 若未找到字符串 index会报错
print(my_str.index('tif'))
# rindex 从右边(后边)开始找
print(my_str.rindex('very'))
# 23
# 14
<3>.count()
统计出现的次数 用法与find一样
print(my_str.count('is', 10))
# 1
<4>.字符串的替换 replace()
把my_str中的str1 换成 str2 若count指定 则替换不超过(<=)count次
my_str.replace(str1, str2, count)
# count默认为my_str.count(str1)
# 返回值得到一个新的字符串 不会改变原来的字符串
my_str1 = my_str.replace('is', 'are', 1)
print(my_str1)
# thare world is very beautiful
<5>.split()
以str作为分隔符切片my_str 若maxsplit有指定值 则仅分割maxsplit+1个子字符串
my_str.split(str=' ', maxsplit)
# str默认为空白字符 【空格 tab键】
# maxsplit 默认为全切割 为my_str.count(str)
# 返回值为一个列表 []
my_str2 = my_str.split("is", 1) # 从左切割
print(my_str2)
# ['th', ' world is very beautiful']
my_str3 = my_str.split() # 默认按空白字符切割
print(my_str3)
# ['this', 'world', 'is', 'very', 'beautiful']
# rsplit() 从右边开始切割
my_str4 = my_str.rsplit('is', 1) # 从右切割
print(my_str4)
# ['this world ', ' very beautiful']
<6>.字符串的连接 join
my_str.join(可迭代对象) 该对象可为str 列表(需要列表中每一个数据都是str类型)
# 将my_str插入到str中每个元素之间 构造出一个新的字符串 (把前面的插入到后面的里面去)
my_str5 = '_'.join('hello')
print(my_str5)
my_str6 = 'is'.join(my_str4) # my_str4为列表 把'is'插入到列表中的每个数据之间
print(my_str6)
# h_e_l_l_o
# this world is very beautiful
一些其他的操作:
my_str = 'hello__this__world'
s1 = ' hello '
<1>.capitalize 把字符串中第一个字符大写 得到一个新的字符串
my_str1 = my_str.capitalize()
print(my_str1)
# Hello__this__world
<2>.title 把字符串中 每一个单词(以空格分隔辨别)的首字母都大写
my_str2 = my_str.title()
print(my_str2)
# Hello__This__World
<3>.upper 所有字符变大写
my_str3 = my_str.upper()
print(my_str3)
# HELLO__THIS__WORLD
<4>.lower 所有字符变小写
my_str4 = my_str3.lower()
print(my_str4)
# hello__this__world
<5>.startswith / endswith
my_str.startswith(str) 检查字符串是否以str开头
my_str.endswith(str) 检查字符串是否以str结尾
是则返回True 否则返回False
my_str5 = my_str.startswith('h')
my_str6 = my_str.endswith('ddsad')
print(my_str5)
print(my_str6)
# True
# False
<6>.center(width)
返回一个 原字符串居中、使用空格填充至长度width的 新字符串
my_str7 = my_str.center(50) # 输出占宽50个单位 字符串居中
print(my_str7)
# hello__this__world
<7>.ljust(width)
返回一个 原字符串左对齐、使用空格填充至长度width的 新字符串
my_str8 = my_str.ljust(30)
print(my_str8)
# hello__this__world
<8>.rjust(width)
返回一个 原字符串右对齐、使用空格填充至长度width的 新字符串
my_str9 = my_str.rjust(30)
print(my_str9)
# hello__this__world
<9>. lstrip() 去除字符串左边的空白字符
rstrip() 去除字符串右边的空白字符
strip() 去除字符串两边的空白字符
不可以去除字符串中间的空白字符
print(s1.lstrip())
print(s1.rstrip())
print(s1.strip())
# hello
# hello
# hello
<10>.partition(str)
把字符串分为 str前、str、str后
print(my_str.partition('__'))
# ('hello', '__', 'this__world')