前言:
Python中的字符匹配和字符的搜索和替换等操作在实际生产需求
中有着重要的作用,本篇博客将详细讲解字符串的相关操作。
正文:
一、 字符串的显示
输入格式:
变量名 = '字符串'
示例1:字符串的数入与输出
a = 'hello'
b = 'westos'
c = 'Python'
d = 'Linux'
e = '''
用户管理系统
1、添加用户
2、查看用户
3、删除用户
'''
print(a)
print(b)
print(c)
print(d)
print(e)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符特性.py
hello
westos
Python
Linux
用户管理系统
1、添加用户
2、查看用户
3、删除用户
Process finished with exit code 0
二、字符串的特性
1、索引
索引:0 1 2 3 索引值默认从 0 开始
示例1:筛选出指定的单个字符
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符特性.py
hello
westos
Python
Linux
用户管理系统
1、添加用户
2、查看用户
3、删除用户
Process finished with exit code 0
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符的特性.py
w
e
s
t
o
s
Process finished with exit code 0
2、切片
通过切片可以筛选除特定的字符的片段
定义 s = 'hello'
切片的规则: s(start,end,step) 从start 开始到 end -1 结束,步长为step
(1)筛选出字符hello的前两个字母
print(s[0:3])
示例1:
s = 'hello'
print(s[0:3])
输出结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hel
Process finished with exit code 0
(2)筛选出字符hello的前三个字母,步长为2
print((s[0:3:2]))
s = 'hello'
print(s[0:3:2])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hel
hl
Process finished with exit code 0
(3)显示所有的字符
print(s[:])
s = 'hello'
print(s[:])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hello
Process finished with exit code 0
(4)显示字符串的前三个字符
print([:3])
s = 'hello'
print(s[:3])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hel
Process finished with exit code 0
(5)字符的逆序输出
print(s[::-1])
s = 'hello'
print(s[::-1])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
olleh
Process finished with exit code 0
(6)除了第一个字符以外,其他全部输出
print([1:])
s = 'hello'
print(s[1:])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
ello
Process finished with exit code 0
(7)进行字符串的重复
print(s*3)
s = 'hello'
print(s*3)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hellohellohello
Process finished with exit code 0
(8)字符串的连接
print('hello' + ' ' + 'world')
s = 'hello'
print('hello' + ' ' 'world')
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
hello world
Process finished with exit code 0
(9)成员操作符
判断指定字符是否在该字符串中,输出结果为True 或者 False
print('h' in s)
print('p' in s)
s = 'hello'
print('h' in s)
print('p' in s)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
True
False
Process finished with exit code 0
示例:回文数的判断
所谓的回文数,即数字从左到右与数字从右到左边一致
如下回文数: 121 1221
"""
判断用户输入的数字是否是回文数
题目分析:
1、首先显示出用户输入的字符,
2、将用户输入的字符进行逆序输出
3、判断用户输入的字符串和逆序排列后的字符串是否相同
"""
str1 = str(input('请输入一个数字:'))
str2 = (str1[::-1])
if str1 == str2 :
print('该数是回文数')
else:
print('该数不是回文数')
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的特性2.py
请输入一个数字:121
该数是回文数
Process finished with exit code 0
三、字符的类型判断
1、判断字符转中每个元素的类型
(1)判断字符的首字母是否大写,其余字母为小写,返回值为True 或 False
这里定义一个字符串: s = 'hello'
格式: s.istitle()
print(s.istitle())
示例1:
s = 'hello'
s.istitle()
print(s.istitle())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
False
Process finished with exit code 0
(2)判断字符首字母是否为数字
格式:s.isdigit
print(s.isdigit())
示例1:
s = '123'
s.isdigit()
print(s.isdigit())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
True
Process finished with exit code 0
(3)进行字符的转换
将字符中所有的字母转换成为大写字母
格式:
s = 'hello'
s.upper()
print(s.upper())
示例1:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
True
Process finished with exit code 0
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
HELLO
Process finished with exit code 0
(4)判断字符是否是大写
格式:
s = 'Hello'
s.isupper()
print(s.isupper())
示例1:
s = 'Hello'
s.isupper()
print(s.isupper())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
False
Process finished with exit code 0
(5)将字符转换成小写
格式:
s = 'HELLO'
s.lower()
print(s.lower())
示例1:
s = 'HELLO'
s.lower()
print(s.lower())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
hello
Process finished with exit code 0
(6)判断字符是否是小写
格式:
s = 'HELLO'
s.islower()
print(s.islower())
示例1:
s = 'HELLO'
s.islower()
print(s.islower())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
False
Process finished with exit code 0
(7)判断字符是否为字母或者数字
格式:
s = 'hello123'
s.isalnum()
print(s.isalnum())
示例1:
s = 'hello123'
s.isalnum()
print(s.isalnum())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
True
Process finished with exit code 0
(8)判断字符串是否为纯字母
格式:
s = 'hello1'
s.isalpha()
print(s.isalpha())
示例1:
s = 'hello1'
s.isalpha()
print(s.isalpha())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
False
Process finished with exit code 0
(9)进行字符串类型的判断
格式:
s = 'hello'
isinstance(s,str)
print(isinstance(s,str))
示例1:
s = 'hello'
isinstance(s,str)
print(isinstance(s,str))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/子独的判断.py
True
Process finished with exit code 0
四、字符串的截去
(1)去掉字符前面和后面的空格
格式:
s = ' hello '
s.strip()
print(s.strip)
示例:
s = ' hello '
s.strip()
print(s.strip())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的截取.py
hello
Process finished with exit code 0
(2)进行空格的指定截取
截去右边的空格
格式:
s = ' hello '
s.rstrip()
print(s.strip)
示例1:
s = ' hello '
s.rstrip()
print(s.rstrip())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的截取.py
hello
Process finished with exit code 0
截去左边的空格
格式:
s = ' hello '
s.lstrip()
print(s.lstrip)
示例1:
s = ' hello '
s.lstrip()
print(s.lstrip())
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的截取.py
hello
Process finished with exit code 0
(3)进行字符串的首字母或者尾字母
格式:
s = 'hello'
s.strip('h')
print(s.strip('h'))
print(s.strip('o'))
示例1:
s = 'hello'
s.strip('h')
print(s.strip('h'))
print(s.strip('o'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的截取.py
ello
hell
Process finished with exit code 0
(4)进行多个字符的截去
格式:
s = 'hello'
s.strip('he')
print(s.strip('he'))
print(s.strip('lo'))
示例1:
s = 'hello'
s.strip('he')
print(s.strip('he'))
print(s.strip('lo'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的截取.py
llo
he
Process finished with exit code 0
五、字符串的匹配开头和结尾
(1)进行字符串开头的匹配
格式:
name = 'hello world'
if name.startswith('hel')
print('hello')
示例1:
name = 'hello world'
if name.startswith('hell'):
print('hello')
else:
print('error')
执行结果:
name = 'hello world'
if name.startswith('hell'):
print('hello')
else:
print('error')
(2)进行字符串结尾的匹配
name = 'hello world'
if name.endswith('ld')
print(''world'')
示例1:
name = 'hello world'
if name.endswith('ld'):
print('world')
else:
print('error')
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符的匹配.py
world
Process finished with exit code 0
五、进行字符串的搜索和替换
1、进行字符串的搜索
格式1:
s = 'hello helloe world'
print(s.find('hello'))
查找结果返回指定字符串的最小索引
示例1:
s = 'hello helloe world'
print(s.find('hell'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符的查找.py
0
Process finished with exit code 0
格式2:
s = 'hello helloe world'
print(s.rfind('hello'))
查找结果返回指定字符的最大索引
示例1:
s = 'hello helloe world'
print(s.rfind('hell'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符的查找.py
6
Process finished with exit code 0
2、进行字符的替换
格式:
s = 'hello world'
print(s.replace('hello','westos'))
示例1:
s = 'hello world'
s.replace('hello','westos')
print(s.replace('hello','westos'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符的替换.py
westos world
Process finished with exit code 0
六、进行字符串的对齐
格式:
name = '学生管理系统'
name.center(30)
作用:将指定的字符串输出到指定位置
示例:
s = '学生管理系统'
s.center(30,"*")
print(s.center(30,'*'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的对其.py
************学生管理系统************
Process finished with exit code 0
七、进行字符串的统计
格式:
name = 'hao hao xue xi'
name.count('ha')
print(name.count('ha'))
示例:
s = 'hao hao xue xi'
s.count('ha')
print(s.count('ha'))
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符统计.py
2
Process finished with exit code 0
八、进行字符串的分离和连接
1、进行字符串的分离
格式:
s = '172.25.254.112'
s1 = s.split('.') ###确定分割符号
print(s1)
示例1:
s = '172.25.254.112'
s1 = s.split('.')
print(s1)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的分离和连接.py
['172', '25', '254', '112']
Process finished with exit code 0
2、进行字符串的连接
格式:
注意的是:进行字符串的连接时,需要字符串本身是分离的
date = '2019-09-01'
date1 = date.split('-')
print(date1)
print(''.join(date1))
示例:
date = '2019-09-01'
date1 = date.split('-')
print(date1)
print(''.join(date1))
执行结果为:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的分离和连接.py
['2019', '09', '01']
20190901
Process finished with exit code 0
进行字符的练习:
示例1:
"""
变量名是否合法:
1.变量名只能由字母、数字、下划线组成
2.只能以字母或下划线开头
"""
#1.变量名第一个字符是否为字母或者下划线
#2.如果是,继续 --> 4
#3.如果不是,报错 , 退出
#4.依次判断除了第一个字符以外的其他字符
#5.判断是否为字母数字或者下划线
"""
变量名是否合法:
1.变量名只能由字母、数字、下划线组成
2.只能以字母或下划线开头
"""
"""
1.变量名第一个字符是否为字母或者下划线
2.如果是,继续 --> 4
3.如果不是,报错 , 退出
4.依次判断除了第一个字符以外的其他字符
5.判断是否为字母数字或者下划线
题目分析:
1、判断第一个字符是否是数字
定义输入的字符:name
根据索引确定找出第一个字母
根据isintance判断第一个字符是否是数字
2、使用while循环即进行逐次判断
3、输出其他字符,然后进行判断,可以进行编厉
"""
while True:
name = input('请输入你的命名:')
first = (name[0])
others = (name[1:])
if first.isalpha() or first == '_':
for i in others:
if i.isalnum() or i == '_':
print('命名合格')
exit()
else:
print('命名不合格')
continue
else:
print('命名不合格')
continue
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串的练习.py
请输入你的命名:%westps
命名不合格
请输入你的命名:jsfkd
命名合格
Process finished with exit code 0
示例2:
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以
下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两>个连续的'L'(迟到),
那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
"""
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以
下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两>个连续的'L'(迟到),
那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
题目分析:
1、用户进行输入字符串
2、对用户输入的字符串进行字符个数的统计
3、如果该字符串中的 A <= 1,和 LLL<=0
"""
name = input('请输入测定的成绩字符串:')
a = name.count('A')
b = name.count('LLL')
if a<=1 and b <=0:
print('True')
else:
print('False')
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/字符串练习2.py
请输入测定的成绩字符串:PPALLL
False
Process finished with exit code 0
示例3:
小米测试题:
要求输入: hello xiao mi
结果输出: mi xiao hello
name = 'hello xiao mi'
s1 = name.split(' ')
s2 = s1[::-1]
print(s2)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/小米测试题.py
['mi', 'xiao', 'hello']
Process finished with exit code 0
要求进行一句语句输出 mi xiao hello
print(('hello xiao mi'.split(' '))[::-1])
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/小米测试题.py
['mi', 'xiao', 'hello']
Process finished with exit code 0
示例4、
要求输入
They are students.
aeiou
要求输出
Thy r stdnts.
"""
name = 'They are student'
name1 = 'aeiou'
name2 = name.split(" ")
for i in name2:
if i == 'They':
ch1 = i.replace('They','Thy')
elif i == 'are':
ch2 = i.replace('are','r')
elif i == 'student':
ch3 = i.replace('student','stdnts')
ch4 = ch1 + ' ' + ch2 + ' ' +ch3
print(ch4)
执行结果:
/home/kiosk/PycharmProjects/westos/venv/bin/python /home/kiosk/PycharmProjects/westos/示例3.py
Thy r stdnts
Process finished with exit code 0