zoukankan      html  css  js  c++  java
  • 二,字符串类型

    字符串类型str
    ======================================基本使用======================================
    1、用途:记录描述性值的状态,比如名字、性别等

    2、定义方式
    msg='hello world' #msg=str('hello world')

    类型转换: 可以把任意类型专场字符串类型
    res1=str(10)
    res2=str(10.3)
    res3=str([1,2,3])
    res4=str({'x':1}) #res4="{'x':1}"

    print(type(res1))
    print(type(res2))
    print(type(res3))
    print(type(res4))


    3、常用操作+内置的方法
    优先掌握的操作:(*****)
    1、按索引取值(正向取+反向取) :只能取
    msg='hello world'

    print(type(msg[0]))#取h
    print(msg[-1])#取d

    msg[0]='H'#报错,'H'无法赋值给 h,字符串是不可变类型

     
    2、切片(顾头不顾尾,步长)
    msg='hello world'
    print(msg[0]+msg[1]+msg[2])# h e l
    print(msg[0:5])#0 1 2 3 4,h e l l o 默认步长为1
    print(msg[0:5:2]) #0 2 4,h l o
    print(msg[0:]) #不写结尾,直接到头,hello world
    print(msg[:]) #都省略,:不能省,代表全部输出 hello word
    反向索引,改步长,

    print(msg[-1:-5:-1]) #-1 -2 -3 -4 反向从-1开始计数

    print(msg[::-1]) #-1 -2 -3 -4


    3、长度len:统计的是字符的个数
    msg='h你d'
    print(len(msg))

    4、成员运算in和not in:判断一个子字符串是否存在与一个大字符串中
    msg='hello world'
    print('ho' in msg)#ho不连续,所以结果位false
    print('ho' not in msg)#True

    5、移除空白strip:移除字符串左右两边的某些字符
    msg=' hello '

    print(msg.strip(' '))#' '中间有空格
    print(msg.strip())#默认去空格
    print(msg)
    引用: 去"*"
     msg='***h**ello**********'
    print(msg.strip('*'))#只能去掉左右两边,输出h**ello
     msg='*-=+h/ello*(_+__
    print(msg.strip('*-=+/(_'))

    6、切分split: 把有规律的字符串切成列表从而方便取值
    info='egon:18:180:150'
    res=info.split(':',1)#以:为分割,从左到右分割一次
    print(res)#输出['egon','18:180:150']
     info='egon:18:180:150'
    res=info.split(':')#以:为分割
    print(res)#输出[egon,18,180,150]

    s1=res[0]+':'+res[1]+':'+res[2]+':'+res[3]
    s1=''
    for item in res:
    s1+=item
    print(s1)


    s1=':'.join(res)#以:拼接
    print(s1)

    ':'.join([1,2,3,4,5])#报错,只能拼接字符串


    注意:需要掌握的技能补充
    1、strip,lstrip,rstrip
    msg='*****hello****'
    print(msg.strip('*'))
    print(msg.lstrip('*'))#去左边*
    print(msg.rstrip('*'))#去右边*

    2、lower,upper
    msg='AaBbCc123123123'
    print(msg.lower())#字母全变小写
    print(msg.upper())#字母全变大写

    3、startswith,endswith
    msg='alex is dsb'
    print(msg.startswith('alex'))#判断是不是以alex开头

    print(msg.endswith('sb'))#判断是不是以sb结尾

    4、format的三种玩法
    msg='my name is %s my age is %s' %('egon',18)
    print(msg)

    msg='my name is {name} my age is {age}'.format(age=18,name='egon')#为指定参数传值
    print(msg)

    了解
    msg='my name is {} my age is {}'.format(18,'egon')#丧失了format的功能
    msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon')#{0}代表索引后面括号里的18,也就是说重复两次18,重复三次egon
    print(msg)


    5、split,rsplit#切分
    cmd='get|a.txt|33333'
    print(cmd.split('|',1))
    print(cmd.rsplit('|',1))从右边开始切


    6、replace 替换
    msg='kevin is sb kevin kevin'
    print(msg.replace('kevin','sb',2))

    7、isdigit #当字符串内为纯数字时结果为True
    res='11111'
    print(res.isdigit())
    int(res)

    age_of_bk=18
    inp_age=input('your age: ').strip()
    if inp_age.isdigit():
    inp_age=int(inp_age) #int('asdfasdfadfasdf')
    if inp_age > 18:
    print('too big')
    elif inp_age < 18:
    print('to small')
    else:
    print('you got it')
    else:
    print('必须输入纯数字')



    了解内容
    1、find,rfind,index,rindex,count
    print('xxxkevin is sb kevin'.find('kevin'))#从左找索引,输出3
    print('xxxkevin is sb kevin'.index('kevin'))#同上
    print('xxxkevin is sb kevin'.rfind('kevin'))#从右找索引,输出15
    print('xxxkevin is sb kevin'.rindex('kevin'))同上


    res='xxxkevin is sb kevin'.find('kevasdfsadfin')
    print(res)#找不到输出-1

    res='xxxkevin is sb kevin'.index('kevasdfsadfin')#找不到,报错



    print('kevin is kevin is kevin is sb'.count('kevin'))#出现次数

    2、center,ljust,rjust,zfill #控制显示样式
    print('egon'.center(50,'*'))#居中显示egon
    print('egon'.ljust(50,'*'))#左对齐
    print('egon'.rjust(50,'*'))#右对齐
    print('egon'.zfill(50))#右对齐,用0填充,

    3、captalize,swapcase,title
    print('my name is kevin'.capitalize()) #第一个字母大写,M大写,其他不变
    print('AaBbCc'.swapcase())#大小写反转
    print('my name is kevin'.title())#所有单词首字母大写

    4、is其他
    name='egon123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成

    print(name.islower())#字符串字母是否全部小写
    print(name.isupper())#
    字符串字母是否全部小写

    name=' '
    print(name.isspace())#全字符串部空格?
    msg='I Am Egon'
    print(msg.istitle())#全部首字母大写?




    # ======================================该类型总结====================================
    # 存一个值

    # 有序

    # 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
    # x='aaa'
    # print(id(x))
    # x='bbb'
    # print(id(x))


     


  • 相关阅读:
    SDN原理 OpenFlow协议 -3
    SDN原理 OpenFlow协议 -2
    蓝桥杯----特殊的回文
    hdu-4513吉哥系列故事——完美队形II--最长回文
    蓝桥杯: 基础练习 十六进制转八进制
    母函数模板核心
    杭电ACM hdu 2079 选课时间 (模板)
    杭电ACM hdu 1398 Square Coins
    求用1g、2g、3g的砝码(每种砝码有无穷多个)称出10g的方案有几种
    有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?
  • 原文地址:https://www.cnblogs.com/martin-wang/p/10003458.html
Copyright © 2011-2022 走看看