聊聊字符串

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

  

猜你喜欢

转载自www.cnblogs.com/andy-lus/p/9123778.html
今日推荐