聊聊字符串
Posted andy-lus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊字符串相关的知识,希望对你有一定的参考价值。
在Python的数据类型中,字符串这一内容相对比较复杂,尤其是其较多的函数操作更令人眼花缭乱,接下来就从以下几个方面简单做以描述:
一、索引和切片
1、Python中的下标索引。所谓‘下标’,就是编号,类似于进超市之前的储物柜对应的编号,通过编号可以快速找到对应的存储空间。
如果有字符串:
name=‘abcdef‘
在内存中的实际存储如下:
如果想去除部分字符,可以采取下标的方式进行:
name = ‘abcdef‘ print(name[0]) #a print(name[1]) #b
print(name[-1]) #f表示倒数第一个
print(name[10]) #下标第10个字符,由于字符中没有,所以执行中会报错
2、切片指的是对字符串中部分字符进行截取的操作,其基本语法如下:
str[start:end]
注意:切片选取的区间是左闭右开型,即从‘start’开始,到‘end’的前一位结束但包括‘end’
举例说明:
s=‘abcdefg‘ print(s[1:3]) #截取第1位和第2位的字符 ==bc print(s[0:3]) #当start为零时,默认从第一位开始截取 ==abc print(s[3:]) #当end为空时,默认截取到最后一位 ==defg print(s[:4]) #当start为空时,默认从第一位开始截取 ==abcd print(s[1:6:2]) #在给定区间start 和end中,每隔2位截取 ==bdf print(s[-4:-1]) #当区间取值为负数时,则从最后一位开始截取 ==def print(s[3:1:-1]) #步长为负数,即倒着取值 ==dc
二、字符串的相关操作
1、字符串中大小写的相互转换
(1)、首字母大写
name=‘cxHKmsSh‘ print(name.capitalize()) #输出的结果就是‘CxHKmsSh’
(2)、以标题身份存在,特殊字符间隔的首字母大写
title1=‘asd,nhu_iikg中国‘ print(title1.title()) #输出的结果就是‘Asd,Nhu_Iikg中国’
(3)、指定字符串中的字母全部大写
name=‘w ai beijing tiananmen‘ print(name.upper())
(4)、指定字符串中的字母全部小写
name= ‘W AI BEIJING TIANANMEN‘ print(name.lower())
案例:验证验证码
verify_code=‘Ds2G‘ verify_code_user = input(‘请输入验证码:‘) if verify_code.lower()=verify_code_user.lower(): print(‘验证成功‘) else: print(‘验证失败‘)
2、字符串的显示操作
(1)、使字符串居中显示
index = ‘github‘ print(index.center(10,‘%‘)) #居中拉成10个字符,由%进行填充
(2)、去掉两边
a = ‘ wang ‘ print(a.strip()) #去掉左右两边的空格 print(a.lstrip()) #去掉左边的空格 print(a.rstrip()) #去掉有右边的空格
案例
uesrname=input(‘请输入用户名:‘).strip() password=input(‘请输入密码:‘).strip() if username ==‘123‘ and password==‘345‘; print(‘登录成功‘) else: print(‘失败‘)
同时可以去除两边指定内容
name=‘asdfghasd‘ print(name.strip(‘asd‘)) #fgh
3、字符串的替换与切割
(1)、字符串的替换
a= ‘123234345‘ print(a.replace(‘2‘,‘6‘) #将字符串a中的字符2替换成6
(2)、字符串的切片
a=‘1_2_3$__5‘ print(a.split(‘_‘)) #对字符串进行切片操作,得出一个数组[‘1‘, ‘2‘, ‘3$‘, ‘‘, ‘5‘] print(a.split(‘1_2_3$__5‘))#当相同时,得到[‘‘, ‘‘] print(a.split(‘6‘)) #切片不存在时,得到原值 print(a.split(‘_‘,2)) #切前两位得到[‘1‘, ‘2‘, ‘3$__5‘]
4、字符串的格式化输出
s = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润发", age=28) # 指定关键字 print(s)
有可以写成下面这种形式
s =‘我叫{1},今年{2}岁了,我喜欢{0}‘.format(‘周杰伦‘,‘张三‘,13) print(s)
5、查找
(1)、计算在原字符串中需要查找的字符出现的次数,如果没有,显示0
A=‘asdsdfe34dsfs‘ print(A.count(‘a‘)) #输出字符a在字符串A中出现的次数 print(A.count(‘9‘)) #当查找的字符不存在时,输出0
(2)、查找内容所在字符串位置,如果没有显示-1,存在返回索引
A=‘djsafkjaye‘ print(A.find(‘k‘)) #输出所在位置 print(A.find(‘8‘)) #没有,则输出-1
6、条件判断
print(s.startwith(‘‘)) #判断字符串是否以。。。开头 print(s.endwith(‘‘)) #判断字符串是否以。。。结束 print(s.isalnum()) #数字和字母 print(s.isdigit()) #数字,只认得阿拉伯数字 print(s.isnumeric()) #认得很多包括中国的数字如:一二三, print(s.isalpha()) #字母
以上是关于聊聊字符串的主要内容,如果未能解决你的问题,请参考以下文章