字符串操作

1、字符串前加 u

例:u"我是含有中文字符组成的字符串。"
  作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

2、字符串前加 r

例:r"\n\n\n\n\n\n”
作用:声明后面的字符串是普通字符串,相对的,特殊字符串中含有:转义字符 \n \t 什么什么的。

3、转义字符

在字符串前加“r”代表取消字符串中的转义字符
在这里插入图片描述

4、查找字符串

部分参考:字符串切片

4.1 find

检测str是否包含在 my_str中,如果是返回开始的索引值,否则返回-1

my_str.find(str, start=0, end=len(mystr))

4.2 rfind

类似于 find()函数,不过是从右边开始查找

my_str.rfind(str, start=0, end=len(my_str) )

4.3 count

返回 str在start和end之间在 my_str里面出现的次数

my_str.count(str, start=0, end=len(mystr))

5、字符串分割与合并(split\join)

5.1 字符串分割(split)

str.split(str=“”, num=string.count(str))
参数· str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数
string.count(str) 字符串中包含某字符串的次数(见本文4.3)

str1 = "    张三,李四,王五     "
print(str1.split())         # 去除字符串开头和结尾的空白字符。
str = "张三,李四,王五"
print(str.split(","))       # 将字符串按照“,”进行分割,返回结果是列表的形式 ['张三', '李四', '王五']
print(str.split(",",1))     # 此处只要求分割一次,因此得到数据为['张三', '李四,王五']两个元素
print(str.split(",")[0])
print(str.split(",")[1])
print(str.split(",")[2])
print(str.count(","))       # 计算分割了几次,此处分割了2此,得到三个元素
# 分割split(), 合并join()

b = "a b c d e f e g"
c = b.split(" ")
d = b. split(" ", 2)
e = b.split("e",1)
f = b.split("e")
print(c,"\n",d,"\n",e,"\n",f)

5.2 字符串合并


m = ["abc","def","123"]
n = "—".join(m)      # 前面为指定的连接符
print(n)

6、字符串截取(切片)

[起始:结束:步长]
注意

  • 选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔
  • 默认“步长”为1,即取完一个下标的数据之后,第二个下标的是在刚刚下标基础上+1
  • 步长为正数,表示从左向右取数据
  • 步长为负数,表示从右向左取数据
str = "abcdefghijklmn"
    str1 = str[:]       #截取字符串的全部字符
    str2 = str[0:3]     #截取第一位到第三位的字符 ,从第一位开始截取时0可以省略
    str3 = str[5:9]     #截取第六位到第10位的字符
    str4 = str[5:]      #截取第六位到结尾的字符
    str5 = str[:-3]     #截取从开头到倒数第三个字符之前
    str6 = str[3]       #截取第4个字符
    str7 = str[-3]      #截取倒数第3个字符
    print(str1, "\n", str2, '\n',str3, '\n',str4, '\n',str5, '\n',str6, '\n',str7, '\n',)

总结

  • 切片使用规则中,要么一个冒号[开始位置:结束位置],要么两个冒号[开始位置:结束位置:步长]
  • 不写步长时,默认为1
  • 步长为正数,表示从左向右取数据
  • 步长为负数,表示从右向左取数据
  • 当开始位置、结束位置都没有设定时,要看步长,如果步长为正数此时开始位置理解为最左 结束位置为最右,如果步长为负数此时开始位置理解为最右结束位置为最左

7、检查字符串开头和结尾字符

7.1 startwhith——检查字符串是否是以 特定字符串开头

检查字符串是否是以 特定字符串开头, 是则返回 True,否则返回 False

my_str.startswith(hello)

7.2 endswith——检查字符串是否以特定字符串结束

检查字符串是否以obj结束,如果是返回True,否则返回 False.

my_str.endswith(obj)

8、大小写转转

8.1 lower——转换 my_str 中所有大写字符为小写

my_str.lower()        

8.2 upper——转换 my_str 中所有小写字母为大写

my_str.upper()    

9、去除前后空格

strip():把头和尾的空格去掉:my_str.strip()

lstrip():把左边的空格去掉: my_str.lstrip()

rstrip():把右边的空格去掉 my_str.rstrip()

10,partition——将字符串按照某字符串分割成三部分

把my_str以str分割成三部分,str前,str和str后

In [42]: my_str = "welcome to my web https://www.itprojects.cn"

In [43]: my_str.partition("web")
Out[43]: ('welcome to my ', 'web', ' https://www.itprojects.cn')

11、按照行分隔,返回一个包含各行作为元素的列表(splitlines)

[47]: my_str = """welcome to my web
    ...: my web site is https://www.itprojects.cn
    ...: thank you"""

In [48]: my_str.splitlines()
Out[48]: ['welcome to my web', 'my web site is https://www.itprojects.cn', 'thank you']

12、判断字符串所有字符类型

12.1判断字符串所有字符都是字母(isalpha)

如果 my_str 所有字符都是字母 则返回 True,否则返回 False

my_str.isalpha()  

12.2判断字符串所有字符都是数字(isdigit)

my_str.isdigit()

my_str.isdigit() 

12.3判断字符串所有字符都是数字或字母(isalnum)

如果 my_str 所有字符都是字母或数字则返回 True,否则返回 False

In [65]: my_str = "abc123"

In [66]: my_str.isalnum()
Out[66]: True

13、遍历所有字符串

a = "abcdefg"

print("方式1")
for i in a:
    print(i)

print("方式2")
for i in range(len(a)):
    print(a[i])
    
print("方式3,反向取值")
print(a[-1])

14、replace替换

把 my_str 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次

my_str.replace(str1, str2,  mystr.count(str1))
a = "abcdefg"

# a[1] = "z"    # 字符串是不可变的序列,因此此种方式错误
b = ["a","b","c","d","e","f"]
b[1]="z"   # 列表可以这样替换
print(b)

a = a.replace("b","z")
print(a)

15、字符搜索操作(in)


m = "a b c d e f e g"

print("b" in m)
print(m.index("g"))

16、字符串格式 格式化

更为详细内容见:应知道的16个Python基础知识

16.1 format格式化

name = "Jim"
score = 90

print("{}的成绩为{}".format(name,score))
print("{0}的成绩为{1}".format(name,score))
print("{1}的成绩为{0}".format(name,score))
print("{n}的成绩为{m}".format(m=name,n=score))

16.2 f简化格式化


name = "Alice"
age = 25
 
formatted_string = f"My name is {name} and I'm {age} years old."
print(formatted_string)

16.3 格式化符号

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值