首页 > 其他分享 >字符串的增删改查

字符串的增删改查

时间:2024-09-28 17:49:35浏览次数:11  
标签:王艳兵 name 李二牛 print 改查 字符串 增删 world

一.增:增加元素

方法一:使用"+"/"*"

语法格式:"字符串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()方法。它接受两个可选的字符串参数(fromto)以及一个可选的字典参数,但通常只使用前两个参数。

  • from:字符串,表示需要被替换的字符集合。

  • to:字符串,表示from中每个字符对应的替换字符。它的长度必须与from相同。

如果fromto的长度不同,或者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

相关文章

  • 字典的增删改查
    一.字典的基础知识    1.字典的创建    2.字典中的键与值二.字典方法:增删改查        1.增:setdefault(),update(),通过键名添加        2.删:pop(),popitem(),clear()        3.改:通过键名修改,update()        4.查:ge......
  • Day4 C++(运算符重载,模板与容器)(友元函数,运算符重载,赋值运算符,string字符串类,模板)
    1.友元friend1.1概念(掌握)定义:类实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,仅能通过类的成员函数才能读写。如果数据成员定义为公共的,则又破坏了封装性。但是某些情况下,需要频繁读写类的成员,特别是在对某些成员函数多次调用时,由于参数传递、类型检查和安全......
  • APP逆向实战:喜马拉雅(OLLVM混淆,字符串加密)
    喜马拉雅抓包:POST/mobile/login/pwd/v3HTTP/1.1Cookie:1&_device=android&fcecf4c4-5ddc-30e3-86b1-6e675f92bfd0&6.6.99;channel=and-f5;impl=com.ximalaya.ting.android;osversion=29;fp=009527657x2022q22564v0500000000000000000000000000000000000000;devic......
  • sha256sum文件哈希值和直接哈希字符串的哈希值不一样
    例如在文件test.txt里写入test没有换行。然后sha256sumtest.txt出来的结果是f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2test.txt但是在这个网站上http://encode.chahuo.com/输入test,然后以sha256方式哈希得到的结果是9f86d081884c7d659a2......
  • Go五种字符串的拼接
    +funcmain(){s1:="hello"s2:="word"s3:=s1+s2fmt.Print(s3)//s3="helloword"}sprintfs1:="hello"s2:="word"s3:=fmt.Sprintf("%s%s",s1,s2)//s3="hell......
  • 要求实现一个函数 DoubleToStr(double a,int b,char * str),将参数 a 转化为字符串 str
    sprintf函数:sprintf(str,"%.*f",b,a);:sprintf是一个格式化输出函数,类似于printf,但它将输出写入到字符串中而不是标准输出。"%.*f":#include<stdio.h>//将双精度浮点数a转换为字符串str,小数点后保留b位voidDoubleToStr(doublea,intb,char*str){  //......
  • 【C语言标准库函数】标准输入输出函数详解2:字符串输入输出
    目录一、字符串输入函数1.1.gets函数(已废弃)1.1.1.函数简介1.1.2.注意和废弃原因1.2.fgets函数1.2.1.函数简介1.2.2.使用场景1.2.3.注意事项1.2.4.示例二、字符串输出函数2.1.puts函数2.1.1.函数简介2.1.2. 使用场景2.1.3.注意事项2.1.4.示例2.2.......
  • C# 字符串(String)的应用说明一
    一.字符串(String)的应用说明:在C#中,更常见的做法是使用 string 关键字来声明一个字符串变量,也可以使用字符数组来表示字符串。string关键字是 System.String 类的别名。 二.创建String对象的方法说明:1.通过给String 关键字定义一个字符串;2.通过使用String类构......
  • 字符串内置方法二
     isdigit 判断是否是数字 返回bool值strip:去除字符串两端的空格或者换行符应用情况举例:比如输入名字,当输入的信息前后都有空格的时候,需要要strip来清除前后空格,保留主要信息,同时重新对user赋值,释放不必要的存储  split数据分割,返回值是一个列表list  join拼......
  • 字符串内置方法一
    数据类型的内置方法:数据类型对象.方法名(参数)upper 转大写  lower转小写例:s1=HELLO WORLDs2=HELLO YUANstartswith 是否以xxx开头endswith 是否以xxx结尾......