聊聊字符串

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())             #字母           

  

 



以上是关于聊聊字符串的主要内容,如果未能解决你的问题,请参考以下文章

聊聊视频播放那些事1

21个常用代码片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023

PHP 代码片段

JavaScript 代码片段

聊聊 GitHub 对于程序员的品牌价值