• python基础知识-03-字符串


    python其他知识目录

    1、for循环遍历字符串中单个字符

    s_str="mcw"
    for i in s_str:
    print(i)
    -----------结果:
    m
    c
    w

    2、#计算字符串长度

    s_str="mcw"
    mcw_len=len(s_str)
    print(mcw_len)
    ------------结果:
    3

    3、#字符串索引

    m_str="mcw"
    print(m_str[0],m_str[2],m_str[1])
    -----------结果:
    m w c

    4、#让用户输入任意字符串,获取字符串之后并计算其中有多少个数字isdigit()

    text=input("请输入内容:")
    index_len=len(text)
    index=0
    while True:
    val=text[index]
    print(val)
    if index==index_len -1:
    break
    index+=1
    
    text=input("请输入内容:")
    index_len=len(text) #输入字符串的长度,
    index=0 #字符串的下角标,下角标为[0,index_len-1]
    count=0 #对数字个数进行计数
    while True:
    val=text[index]
    if val.isdigit():
    print(val)
    count+=1
    if index==index_len -1:
    break
    index+=1
    print("数字总共有%s个"%(count))
    -----------------结果:
    请输入内容:mcwff9023ff
    9
    0
    2
    3
    数字总共有4个

    实现步骤思路:

    1、用的是while对输入字符串进行循环打印(while循环字符串需要统计字符串长度,开
    头和结尾数字)
    2、判断字符是否为数字,打印出数字来
    3、初始化一个计数变量,多一个数字就自增一对个数进行统计。

    5、#索引取值,从前向后,从后向前取。


    6、#切片和索引

    -----------------
             01234 
    mcw_str
    ="mcwhr" ------------------ print(mcw_str[0],mcw_str[2],mcw_str[4]) m w r ------------------- print(mcw_str[-1],mcw_str[-2],mcw_str[-3],mcw_str[-4],mcw_str[-5]) r h w c m ------------------ print(mcw_str[2:4],mcw_str[3:-1],mcw_str[2:],mcw_str[:-1],mcw_str[:3]) wh h whr mcwh mcw
    自我注解:
    [2:4]取下标2,3,不包含4;[3:-1],取指定下标3到最后一个,-1为倒数第一个,不包含最后一个;[2:],从指定下标到最后一个,包含最后一个;[:-1],取下标从0到
    最后一个,不包含最后一个;[:3],从开头到下标2做操作,不包含下标3
    --------------------
    [::]取所有 [::-1]倒着取,步长为1

    取最后两个字符[-2:],或者[字符总长度-2,字符总长度],len().

    mcw_str="mcwhr"
    print(mcw_str[-2:])
    hr
    
    mcw_str="mcwhr"
    total_len=len(mcw_str)
    v=mcw_str[total_len-2:total_len]
    print(v)
    hr

    错误:IndexError: string index out of range

    原因:索引超出范围了。

    mcw="sfsf"
    print(mcw[7])

    7、#字符串操作split,#有时间添加awk的切割做对比


    split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

    1、split()函数
    语法:str.split(str="",num=string.count(str))[n]

    参数说明:
    str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列
    表的一个元素
    num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给
    新的变量
    [n]:表示选取第n个分片

    注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略


    string = "www.mcw.com.cn"

    1.以'.'为分隔符              #指定分隔符切割

    print(string.split('.'))

    ['www', 'mcw', 'com', 'cn']

    2.分割两次         #指定分隔符,指定切割次数

    print(string.split('.',2))

    ['www', 'mcw', 'com.cn']

    3.分割两次,并取序列为1的项     #指定分隔符,指定次数切割并取指定下标的元素。

    print(string.split('.',2)[1])

    mcw

    4.分割两次,并把分割后的三个部分赋值给三个变量。    #指定分隔符,指定次数分割。分割结果赋值给(次数+1)个变量(疑问,赋值变量个数可以少点吗?)

    u1, u2, u3 =string.split('.',2)

    print(u1)—— www

    print(u2)—— mcw

    print(u3) ——com.cn

    -----------------------------

    5、一个复杂的切割案例:
    mcwstr="hello mcw<[www.baidu.com]>byebye"

    1)print(mcwstr.split("[")[1])
    www.baidu.com]>byebye

        2)print(mcwstr.split("[")[1].split("]")[0])

             www.baidu.com

        3)print(mcwstr.split("[")[1].split("]")[0].split("."))
       ['www', 'baidu', 'com']
    参考文章:https://www.cnblogs.com/liujiacai/p/7839971.html
    https://blog.csdn.net/ll18810775652/article/details/78575066

    6、split默认以空格为分隔符

    name="xiao ma guo he"
    print(name.split())
    --------结果:
    ['xiao', 'ma', 'guo', 'he']

    8、#字符串操作isdigit使用

    mcw1="a"
    mcw2="2"
    mcw3="8b"
    n1=mcw1.isdigit()
    n2=mcw2.isdigit()
    n3=mcw3.isdigit()
    print(n1,n2,n3)
    ---------------结果: #False True False
    #自我注解:只要是数字返回值就是True.由此判定字符是否为数字。

    #让用户输入任意字符串,获取字符串之后病计算其中有多少个数字

    text=input("请输入内容:")
    index_len=len(text) #输入字符串的长度,
    index=0 #字符串的下角标,下角标为[0,index_len-1]
    count=0 #对数字个数进行计数
    while True:
    val=text[index]
    if val.isdigit():
    print(val)
    count+=1
    if index==index_len -1:
    break
    index+=1
    print("数字总共有%s个"%(count))
    ------------------结果:
    请输入内容:mcwff9023ff
    9
    0
    2
    3
    数字总共有4个

    实现步骤思路:

    1、用的是while对输入字符串进行循环打印(while循环字符串需要统计字符串长度,开 
    头和结尾数字)
    2、判断字符是否为数字,打印出数字来
    3、初始化一个计数变量,多一个数字就自增一对个数进行统计。

    9、#字符串操作upper和lower

    mcw1="MCcI"
    mcw2="mKlsM"
    print(mcw1.lower(),mcw2.upper())
    -----------------结果:
    mcci MKLSM
    
    
    mcw="mCwfeIhAo xIao"
    mcwmodify=mcw[0:1].upper()+mcw[1:len(mcw)].lower()
    mm=mcw[:-3].lower()+mcw[-3:].upper()
    print(mcwmodify)
    print(mm)
    ----------------结果:

    Mcwfeihao xiao
    mcwfeihao xIAO

    #自我注解: 对字符串大小写进行转换,也可以对字符串先切片再转换大小写,用+号拼接起来。

          可指定字符转换大小写,当结合切片的时候

    10、#字符串操作strip(),lstrip(),rstrip()

    参考:https://www.cnblogs.com/huangbiquan/p/7923008.html

    Python中有三个去除头尾字符、空白符的函数,它们依次为:

    strip: 用来去除头尾字符、空白符(包括 、 、 、' ',即:换行、回车、制表符、空格)
    lstrip:用来去除开头字符、空白符(包括 、 、 、' ',即:换行、回车、制表符、空格)
    rstrip:用来去除结尾字符、空白符(包括 、 、 、' ',即:换行、回车、制表符、空格)
    注意:这些函数都只会删除头和尾的字符,中间的不会删除。

    用法分别为:
    string.strip([chars])
    string.lstrip([chars])
    string.rstrip([chars])

    参数chars是可选的,当chars为空,默认删除string头尾的空白符(包括 、 、 、' ')
    当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

    它返回的是去除头尾字符(或空白符)的string副本,string本身不会发生改变。

    举例说明如下:
    1. 当chars为空时,默认删除空白符(包括' ', ' ', ' ', ' ')

    m_str=" xiao ma "
    print("---|"+m_str+"|---") #原字符串打印
    print("---|"+m_str.strip()+"|----") #删除头尾空格
    print("---|"+m_str.lstrip()+"|---") #删除开头空格
    print("---|"+m_str.rstrip()+"|---") #删除结尾空格
    显示结果:
    ---| xiao ma |---
    ---|xiao ma|----
    ---|xiao ma |---
    ---| xiao ma|---


    2.当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

    m_str="122xiao12ma2"
    print(m_str) #原字符串打印
    print(m_str.strip("12")) #删除头尾指定字符串
    print(m_str.lstrip("12")) #删除开头指定字符串
    print(m_str.rstrip("12")) #删除结尾指定字符串

    结果:
    122xiao12ma2
    xiao12ma
    xiao12ma2
    122xiao12ma


    3、字符串也可以变量代替
    a = 'x'
    b = 'xiaoma'
    print(b.lstrip(a))

    iaoma

    4、
    a="c:acmacm"
    b="c:acmcw"
    print(b.strip(a))

    cmcw #去除变量b中与变量a开头相同的部分。

     5、#去制表符,换行符

    v1="mcw
    xiaoma"
    v2="mcw 	 xiaoma"
    print(v1)
    print("------------------------")
    print(v2)
    print("---------------------------")
    v3="mcw
    "                                   #去制表符,换行符
    v4="xiaoma	"
    print(v3.strip(),v4.strip())    

     6、默认同时去掉制表符,换行符,空格这些

    ss="  	   mcw
       "
    li=[]
    li.append(ss)
    li.append(ss.strip())
    print(li)
    ------------------结果:
    ['  	   mcw
       ', 'mcw']
  • 相关阅读:
    shell脚本(多线程批量创建用户)
    听说你在从事前端开发?那这10个JavaScript的优化问题你不得不知道!
    解读网易易盾新一代IoT安全编译器Maze
    Java Web学习总结(12)——使用Session防止表单重复提交
    自动化内存管理和引用计数
    关于烂代码的那些事(下)
    rest_framwork序列化Serializer和ModelSerializer、url生成HyperlinkedIdentityField、深度depth、局部钩子校验
    版本控制
    解析器:request.body、request.POST、request.data
    权限之model对象权限,查看所有对象时,过滤指定对象。操作单条对象时,判断有没有操作权限
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/10623192.html
Copyright © 2020-2023  润新知