Python字符串操作
拼接字符串
示例代码:
one = 'Hello world'
two = '你好世界'
print(one + '--' + two)
执行结果:
Hello world--你好世界
注意:字符串不能与其他类型数据拼接
示例代码:
one = 'Hello world'
two = 1
print(one + '--' + 1)
执行结果:
Traceback (most recent call last):
File "D:/xuexi/python/Demo.py", line 3, in <module>
print(one + 1)
TypeError: can only concatenate str (not "int") to str
但是我们可以想点办法:
示例代码:
one = 'Hello world'
two = 1
print(one + '--' + str(1))
执行结果:
Hello world--1
计算字符串长度
len(string)
示例代码:
one = 'Hello world'
print(len(one))
执行结果:
11
注意:GBK与UTF-8长度不一样,采用GBK或GB2312时汉字占2个字节,UTF-8占3个字节。
UTF-8示例代码:
one = '嗨喽 world'
print(len(one.encode())) # 计算UTF-8编码的字符串长度
直接结果:
12
GBK示例代码:
one = '嗨喽 world'
print(len(one.encode('gbk'))) # 计算GBK编码的字符串长度
执行结果:
10
截取字符串
示例代码:
one = '嗨喽 world'
print(one[1])
print(one[3:])
print(one[:5])
print(one[1:6])
执行结果:
喽
world
嗨喽 wo
喽 wor
避免索引不存在时出现保存我们可以使用try except来捕获并返回我们设定的结果
示例代码:
try:
one = '嗨喽 world'
print(one[15])
except IndexError:
print("指定的索引不存在") # 如果索引不存在打印这个结果
执行结果:
指定的索引不存在
实例:
截取身份证年月日;
示例代码:
try:
number = '510226199602284031'
print(f'出生年月是:{number[6:14]}')
except IndexError:
print("指定的索引不存在")
执行结果:
出生年月是:19960228
分割字符串
str.split(sep, maxsplit)
- str:表示要进行分割的字符串
- sep:指定分割符,可以包含多个字符,默认为None,即所有空字符串(包括空格、换换’\n’、制表符’\t’等)
- maxsplit:可选参数,用于指定分割次数,不指定或为-1,则分割次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit+1.
示例代码1:
str1 = '1, 2, 3'
print(str1.split(', ')) # 以字符串和空格分割,获得一个新的list
执行结果:
['1', '2', '3']
注意:以什么分割,新的结果列表将不在包含此字符串
示例代码2:
str1 = '@小张 @小明'
str2 = str1.split(' ')
print('@的朋友有:')
for i in str2:
print(i[1:]) # 输入没有@符合的秘籍在这里
执行结果:
@的朋友有:
小张
小明
合并字符串join()
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
join()方法语法:
str.join(sequence)
以下实例展示了join()的使用方法:
s1 = "-"
s2 = ""
seq = ("a", "b", "c", "d", "e", "f") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
执行结果:
a-b-c-d-e-f
abcdef
统计字符串出现次数(count())
str.count(sub[, start[, end]])
执行结果:
str1 = '1, 2, 3, 4, 1'
print('1出现的次数:', str1.count('1'))
print('","符号出现的次数:', str1.count(','))
执行结果:
1出现的次数: 2
","符号出现的次数: 4
字符串中查找字符
str.find(sub[, start[, end]])
- str:表示原字符串
- sub:表示要检索的字符串
- start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从零开始。
- end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到末尾。
示例代码:
str1 = '嗨喽,你好'
print('"你"在字符串中的索引是:', str1.find('你'))
执行结果:
"你"在字符串中的索引是: 3
也可使用index()方法
str.index(sub[, start[, end]])
注意:使用index方法如果字符串不存在会抛出异常
判断是否xx开始
使用startswith
示例代码:
String = "12345 上山打老虎"
if str(String).startswith('1'): #判断String是否以“虎”结尾
print("有老虎")
else:
print("没老虎")
执行结果:
有老虎
判断是否xx结尾
使用endswith
示例代码1:
String = "12345 上山打老虎"
if str(String).endswith('虎'): #判断String是否以“虎”结尾
print("有老虎")
else:
print("没老虎")
执行结果:
有老虎
示例代码2:
"""
作者:Wei
日期:2018/9/15 17:20
Python版本:3.7
"""
#小游戏:数数1到99遇到的数是7结尾或这个数是7的倍数,就拍一下腿,计算到99共拍多少下腿
count = 0
for number in range(1,100): # range(100)不包含100
if number % 7 == 0 or str(number).endswith('7'):
count += 1
continue
print(f"1到99共拍腿{count}次")
执行结果:
1到99共拍腿22次
子母大小写转换
将字符串转换为小写
示例代码:
str1 = 'HELLO World'
print(str1.lower())
执行结果:
hello world
将字符串转换为大写
示例代码:
str1 = 'HELLO World'
print(str1.upper())
执行结果:
HELLO WORLD
去除字符串左右空格和特殊字符
str.strip([chars])
str:需要去除空格的字符串
chars:可选参数,用户指定要去除的字符串,可以指定多个。
示例代码:
str1 = '+HELLO World+'
print(str1.strip('+')) # 去除首尾"+"
执行结果:
HELLO World
去除字符串左侧空格或字符串
str.lstrip([chars])
示例代码:
str1 = '+HELLO World+'
print(str1.lstrip('+')) # 去除首尾"+"
执行结果:
HELLO World+
去除字符串右侧空格或字符串
str.rstrip([chars])
示例代码:
str1 = '+HELLO World+'
print(str1.rstrip('+')) # 去除首尾"+"
执行结果:
+HELLO World

浙公网安备 33010602011771号