一.增:增加元素
方法一:使用"+"/"*"
语法格式:"字符串1"+字符串"2"*数值...
注:以下例子以两个元素进行举例,
当使用"+"对两个字符串进行拼接时,注意:此时拼接出的新字符串中间是没有空格的.字符串与字符串直接没有"*"这个方法
a = '李二牛'
b = '王艳兵'
c=a+b
print(c)
李二牛王艳兵
当使用"+"对字符串和数值进行拼接时,注意:此时会报错
a = '李二牛'
b = 2
c=a+b
print(c)
TypeError: can only concatenate str (not "int") to str
当使用"*"对字符串和数值拼接时,会将字符串输出n遍(取决于数值n)
a = '李二牛'
b = 2
c=a*b #a*b与b*a都可以没有顺序之分
print(c)
李二牛李二牛
方法二:使用","
语法格式:"字符串1","字符串2",数值...
当使用","对两个字符串进行拼接时,注意:此时新拼接的字符串中间有空格
a = '李二牛'
b = '王艳兵'
print(a,b)
李二牛 王艳兵
当使用","对一个字符串一个数值进行拼接时,效果一致,当两个元素都为数值时,也是相同的效果
a = '李二牛'
b = 2
c = 3
print(a,b)
print(b,c)
李二牛 2
2 3
方法三:使用格式化
print(f/F'xxxx{变量名}xxx{变量名}')
使用格式化方法时,需要对添加的变量名使用'{}'并在引号前面加上F/f,对于'{}'内的变量名.可以使用切片,索引,赋值运算,方法
该例子中使用了索引,赋值运算,与字符串的修改方法
money = 8.8
food = '米饭'
print(f'今天吃了{food}花了{money}元')
print(f'今天吃了{food[1]}花了{money + 1}元')
print(f'今天吃了{food.replace("米饭", "肉")}花了{money}元')
今天吃了米饭花了8.8元
今天吃了饭花了9.8元
今天吃了肉花了8.8元
方法四:使用%操作符
语法格式:%d,%s.....
%s:用于字符串
%d:用于整数
%f:用于小数
%x:用于表示十六进制整数
%o:用于八进制整数
%%:用于表示%字符本身
在使用%操作符时,相当于为后面的变量名占位置
在使用的时候,每个%对应的顺序应于后面的变量名的顺序相对应,不能打乱顺序因为%d,%s...不能自动进行识别变量的数据类型
name="爱丽丝"
age=20
height=170
weight=23.445
print("人物信息:姓名:%s,年龄:%d,身高:%d,体重:%.2f"%(name,age,height,weight))
方法五:format()
1.当使用变量名时
语法格式:"xxxx{}xxxxx{}".format(变量1,变量2)
当使用变量名时既表示拼接的元素使用变量名进行代替,其中变量只能多于占位符,不能少于占位符.
该例子是三个占位符,三个变量名,正常输出
name1='李二牛'
name2='王艳兵'
position='铁拳团'
print('{}和{}是{}的战友'.format(name1,name2,position))
李二牛和王艳兵是铁拳团的战友
两个占位符三个变量名,正常输出
四个占位符三个变量名,输出报错IndexError
name1='李二牛'
name2='王艳兵'
position='铁拳团'
print('{}和{}是战友'.format(name1,name2,position))
print("{}和{}是{}战友{}".format(name1,name2,position))
李二牛和王艳兵是战友
IndexError: Replacement index 3 out of range for positional args tuple
2.当不使用变量名时
语法格式:"xxxx{索引值}xxxx{索引值}".format("xxx","xxxx")
其占位符与所拼接元素的个数要求与上一方法一致,不同的是当拼接元素大于占位符数量时,可以使用索引值进行位置的选取
print('{}和{}是战友'.format("李二牛","何晨光","王艳兵"))
print('{2}和{0}是战友'.format("李二牛","何晨光","王艳兵"))
李二牛和何晨光是战友
王艳兵和李二牛是战友
方法六:join()
语法格式:" ".join(列表)
传递给 join()
方法的序列中的元素必须是字符串(或可转换为字符串的类型,如数字)
join()
方法是在分隔符字符串上调用的,而不是在要连接的序列上。
words = ['Hello', 'world', 'Python']
sentence = ' '.join(words)
print(sentence)
Hello world Python
二.删:删除元素
方法一:删除特定位置的字符
语法格式:字符串[:n]+字符串[n+2:]
s = 'hello world'
s_new = s[:6] + s[7:] # 删除索引为6的字符('w')
print(s_new)
hello orld
方法二:删除两端字符
语法格式:字符串.strip()
1.删除空白格
当strip()内没有任何参数时,既删除空白格
s = ' hello world '
# 删除两端空格
s_stripped = s.strip()
print(s_stripped)
hello world
2.删除指定字符
当strip()内有参数时,既删除左右两端所有匹配的字符
s = '!!!hello world!!'
s_stripped = s.strip("!")
print(s_stripped)
hello world
3.删除左/右指定字符
使用(左)lstrip()或(右)rstrip(),删除所有匹配的字符
s = '!!!hello world!!'
s_stripped_l = s.lstrip("!")
s_stripped_r = s.rstrip("!")
print(s_stripped_l)
print(s_stripped_r)
hello world!!
!!!hello world
方法三: 删除特定字符
语法格式:字符串.replace('旧字符','新字符','修改次数')
在该例子中使用replace('e',' ',3)将原字符串中前三个的"e"修改为" "(空格)
s = 'hello world, hello everyone'
# 删除前三个"e"
s_no_e = s.replace('e', ' ',3)
print(s_no_e)
h llo world, h llo veryone
三.改:修改元素
方法一:replace()
语法格式:字符串.replace('旧字符','新字符','修改次数')
使用replace()方法在修改/删除字符时,是重新生成一个新的字符进行修改,而不是在原字符串上修改.
在该例子中,将"name"字符串中的"李二牛"改为""(引号内没有任何东西,既表示删除),但并不改变字符串"name"的值,而是通过形成新的字符串'name_'来实现删除/修改
name=',李二牛,王艳兵,'
print(name.replace('李二牛',''))
print(name)
name_=name.replace('李二牛','二牛')
print(name_)
,,王艳兵,
,李二牛,王艳兵,
,二牛,王艳兵,
方法二: upper()
语法格式:字符串.upper()
将字符串中的字母全部变为大写
s = 'hello world, hello everyone'
s_upper=s.upper()
print(s_upper)
HELLO WORLD, HELLO EVERYONE
方法三:lower()
语法格式:字符串.lower()
将字符串中的字母全部变为小写
s = 'HELLO WORLD, HELLO EVERYONE'
s_lower=s.lower()
print(s_lower)
hello world, hello everyone
方法四:translate()和str.maketrans()
语法格式:
trans=str.maketrans('','')
s.translate()
str.maketrans()
用于创建一个映射表,这个映射表可以传递给translate()
方法。它接受两个可选的字符串参数(from
和to
)以及一个可选的字典参数,但通常只使用前两个参数。
-
from
:字符串,表示需要被替换的字符集合。 -
to
:字符串,表示from
中每个字符对应的替换字符。它的长度必须与from
相同。
如果from
和to
的长度不同,或者to
被省略,则会引发异常
在该例子中,将"ABCefg"对应改变为"abCEFg",所以字符串"ABC,efg"经过改变会变为"abC,EFg".
s = "ABC,efg"
trans = str.maketrans("ABCefg","abCEFg")
s = s.translate(trans)
print(s)
abC,EFg
第三个参数的用法:既删除原字符串中的指定字符
s = "QWER,tyui"
trans = str.maketrans("QWERtyui","qwerTYUI","iu")
s = s.translate(trans)
print(s)
qwer,TY
方法五:title()
语法格式:字符串.title()
将字符串首字母大写
s = "QWER,tyui"
print(s.title())
Qwer,Tyui
方法六:split()
语法格式:字符串.split("分割依据","分割次数")
将字符串进行分割
1.当不传入参数时:
当不传入参数时,默认是根据空格进行分割,分割后返回一个列表
s = "Hello world! Welcome to Python."
words = s.split()
print(words)
['Hello', 'world!', 'Welcome', 'to', 'Python.']
2.当传入第一个参数时:
第一个参数表示根据指定参数分割
s = "apple,banana,cherry"
fruits = s.split(",")
print(fruits)
['apple', 'banana', 'cherry']
3.当传入两个参数时:
第二个参数表示分割次数
s = "one:two:three:four:five"
parts = s.split(":", 2) # 最多分割2次
print(parts)
['one', 'two', 'three:four:five']
4.特殊
当分割依据位于两端时
会生成一个空元素
s = "wasdfw"
parts = s.split("w")
print(parts)
['', 'asdf', '']
四.查:查看元素
方法一:find()
语法格式:字符串.find('内容',起点,终点)
返回'内容'在字符串中的索引,并可以使用起点和终点获取指定范围内的'内容'索引,若字符串中没有该内容则返回-1
name='tom,jack,toto'
print(name.find('s'))
print(name.find('t',2,19))
-1
9
方法二:count()
语法格式:字符串.count("内容",起点,终点)
用于求和返回字符串中该内容出现了多少次,并可以指定区间
name='tom,jack,toto'
print(name.count('t'))
print(name.count('t',2,10))
3
1
方法三:isdigit()/isalpha()
语法格式:字符串.isdigit()/isalpha
isdigit()用于判断字符串是否为纯数字,isalpha()用于判断字符串是否为纯字母,返回的形式都是布尔类型(True/False)
name='asdfg'
number="1234"
print(number.isdigit())
print(name.isdigit() )
print(name.isalpha())
True
False
True
方法四:endswith()
语法格式:字符串.endswith("数据")
endswith("数据")方法用于判断字符串是否是以该数据结尾
name='123asdfg'
print(name.endswith('asd'))
print(name.endswith("dfg"))
False
True
标签:王艳兵,name,李二牛,print,改查,字符串,增删,world
From: https://blog.csdn.net/2303_81133811/article/details/142530733