最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Python第10天:字符串多样化处理方法

XAMPP案例 admin 560浏览 0评论
字符串的处理在任何语言开发项目中都是设计最多的一块,而且大部分项目运行结果都需要以文本的形式展现给客户。比如说是财务年度报表、游戏比赛结果、地铁到站时间表等等。
00Python
曾有大佬说过,开发一个项目基本上就是在原源源不断的处理字符串!接下来我们一起看看python处理字符串的一些常用操作。

拼接字符串

拼接字符串最常见的就是使用’+’,它可以连接多个字符串并且产生一个字符串对象。

str1 = '林俊杰'
str2 = '那一双爱笑眼睛不适合流泪'

print(str1 +'-'+ str2)
#林俊杰-那一双爱笑眼睛不适合流泪

但是注意的是不支持和其他类型的数据直接拼接的。例如数字。

str1 = '林俊杰'
no = 8975
str2 = '全都怪我 不该沉默时沉默 该勇敢时软弱'

print(str1 +'-'+ no +'-' +str2)
#TypeError: can only concatenate str (not "int") to str

如果想要拼接的话就需要将数字类型转换为字符串类型,如下:

str1 = '林俊杰'
no = 8975
str2 = '全都怪我 不该沉默时沉默 该勇敢时软弱'

print(str1 +'-'+ str(no) +'-' +str2)
#林俊杰-8975-全都怪我 不该沉默时沉默 该勇敢时软弱

计算字符串长度

字符串长度的统计python给出了len()方法,在默认情况下,通过len()方法统计字符串长度时,是不区分英文、数字和汉字的。

str1 = '林俊杰-相信爱一天抵过永远,在这一刹那冻结了时间!'
print(len(str1))
#25

但是在实际开发中,还会涉及到统计字符串的字节数。而且采用不同的编码格式汉字所占的字节数也是不一样的。例如 UTF-8 编码格式的汉字占三个字节;采用 GBK或者GB2312 的编码格式汉字占两个字节。前提需要使用encode()方法解码后方可统计字节长度。

str = '林俊杰'

#使用utf-8的编码格式
print(len(str.encode('utf-8')))
#9

#使用gbk的编码格式
print(len(str.encode('gbk')))
#6

截取字符串

 字符串也是序列的一种,所以跟之前学过的列表元组一样,截取字符串需要切片的形式。而且字符串的索引同序列一样,都是从0开始的。

str = '离愁能有多痛痛有多浓,当梦被埋在江南烟雨中,心碎了才懂'

#截取第5个字符串
str1 = str[5]
print(str1)

#截取第5-15字符串
str2 = str[4:15]
print(str2)

#截取第15之后的全部字符串
str3 = str[15:]
print(str3)

#截取第5之前的全部字符串
str4 = str[:5]
print(str4)

'''
结果输出:
痛
多痛痛有多浓,当梦被埋
在江南烟雨中,心碎了才懂
离愁能有多
'''

分割字符串

分割字符串就是把字符串分割为列表的一个过程,它是按照分隔符来分割字符串的。不包括符号。

在Python中字符串对象提供了分割字符串的split()方法。

str.split(sep,maxsplit)

其中str指的是要分割的字符串,sep指的是你要分割字符串使用的分隔符。maxsplit指的是分割的次数。当值为-1的时候代表没有限制,返回元素最大个数为maxsplit+1。

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print('原始字符串:', str)

#默认分割方式
list1 = str.split()
print(list1)
#使用-进行分割,并且只分割前十个
list2 = str.split('-',10)
print(list2)
#使用空格进行分割
list3 = str.split(' ')
print(list3)
'''
结果输出:
原始字符串: 我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己
['我跑啊跑啊', '就是为了追上', '那个曾经', '被赋予众望的-自己']
['我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的', '自己']
['我跑啊跑啊', '就是为了追上', '那个曾经', '被赋予众望的-自己']
'''

检索字符串

在python中,字符串对象提供了很多用于字符串查找的方法。简单来看一下几种:

1.count()方法–用于检索指定字符在字符串中出现的次数,若无则返回0;

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print(str.count('跑'))
#2
print(str.count('鼎'))
#0

2.find()方法–用于检索字符串中是否包含指定的字符,若无,返回-1,否则返回指定字符第一次出现的索引。

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print(str.find('跑'))
#1
print(str.find('鼎'))
#-1

如果只是单纯的想要确定是否包含指定字符串而不需要确定其位置时,也可以使用

print('**' in str)

来判断。如果存在返回True,否则返回False。

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print('被' in str)
#True
print('鼎' in str)
#False

index()方法

index()方法和上述find()方法大同小异,都是检索字符串中是否包含指定字符串。区别在于index()方法如果检索不存在的字符串时会产生异常。

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print(str.index('被'))
#18
print(str.index('鼎'))
#ValueError: substring not found

startswith() && endswith()

startswith()和endswith()就是一对反义词,一个关注的是是否以指定字符开始,另一个关注的是是否以指定字符结束。如果是,返回True,反之False。

str = '我跑啊跑啊 就是为了追上 那个曾经 被赋予众望的-自己'
print(str.startswith('我'))
#True
print(str.startswith('你'))
#False

print(str.endswith('己'))
#True
print(str.endswith('2'))
#False

字母大小写转换

在Python中提供了lowre()和upper()来进行字母大小写的转换。

lower()方法用于将字符串的大写字母转全部换为小写字母;而upper()方法是用于将字符串的小写字母全部转换为大写字母。

str = 'Oscar Wilde And Influence And Reception Of His Aestheticism In china.'
print('原始字符串:', str)

print('大写字母:', str.upper())
print('小写字母:', str.lower())
'''
原始字符串: Oscar Wilde And Influence And Reception Of His Aestheticism In china.
大写字母: OSCAR WILDE AND INFLUENCE AND RECEPTION OF HIS AESTHETICISM IN CHINA.
小写字母: oscar wilde and influence and reception of his aestheticism in china.
'''

去除空格和特殊字符串

当用户在前端输入数据时,有时候不会按照我们的要求。例如多输入一个空格。但是我们后台在处理这些数据的时候,是不允许有空格或者其它特殊字符的。或者我们使用前面提到的len()方法获取字符串长度时,也需要的是有效的长度。这时候就要用到python字符串去空格的方法了。

说明:特殊字符一般指的是制表符’\t’、回车符’\r’和换行符’\n’。

1.strip()方法去除字符串左右空格和特殊字符串

2.lstrip()方法去除字符串左边空格和特殊字符串

3.rstrip()方法去除字符串右边空格和特殊字符串

string = '  A heart that loves is always young 有爱的心永远年轻\t   '

#使用strip()方法去除左右空格和特殊字符
print(string.strip())
#A heart that loves is always young 有爱的心永远年轻
#使用lstrip()方法去除左空格和特殊字符
print(string.lstrip())
#使用rtrip()方法去除左右空格和特殊字符
print(string.rstrip())
'''
A heart that loves is always young 有爱的心永远年轻
A heart that loves is always young 有爱的心永远年轻    
  A heart that loves is always young 有爱的心永远年轻
'''

格式化字符串

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

str1 = '{} {}'.format('hello','world')
print(str1)

str2 = '{0} {1}'.format('hello','world')
print(str2)

str3 = '{0} {1} {1}'.format('hello','world')
print(str3)
'''
结果输出:
hello world
hello world
hello world world
'''

也可以设置参数:

print('姓名:{name}, 年龄:{age}, 地址:{address}'.format(name = '张三', age = 22, address = '北京'))

#通过字典设置参数
user = {'name':'李四', 'age':33, 'address':'上海'}
print('姓名:{name},年龄:{age}, 地址:{address}'.format(**user))
'''
结果输出:
姓名:张三, 年龄:22, 地址:北京
姓名:李四,年龄:33, 地址:上海
'''

转载请注明:XAMPP中文组官网 » Python第10天:字符串多样化处理方法

您必须 登录 才能发表评论!