zoukankan      html  css  js  c++  java
  • 十、str的索引、切片和str常用的操作方法(重点)

    1.str的索引、切片

    (1)按照索引取值:

    s1[index](取出来的类型都是str)

    从左至右有顺序,下标,索引(标志从0开始 0123......)

    比如:

    s1 = 'python全栈22期'
    s2 = s1[0]
    print(s2,type(s2))           #p <class 'str'>
    s3 = s1[2]
    print(s3)                         #t
    s4 = s1[-1]
    print(s4)                         #期

    (2)按照切片取值(顾头不顾尾

    s1[start_index : end_index+1](第一位是0时可以省略不写)

    比如:

    s1 = 'python全栈22期'
    s5 = s1[0:6]
    s5 = s1[:6]
    print(s5)            #python(第一位开始,可省略不写;n是第5,要后延1位)
    s6 = s1[6:]
    print(s6)            #全栈22期(一直到最后一位,最后一位可省略不写)

    (3)切片步长:

    s1[start_index : end_index+1:步长]

    比如:

    s1 = 'python全栈22期'
    s7 = s1[:5:2]
    print(s7)                  #pto(与切片原理一样,加入了步长,可以隔一个输出下一个)
    print(s1[:])               #python全栈22期 (全部输出)

    (4)倒序,反向按照切片步长:

    s1[start_index : end_index后延一位:步长(负的)]

    比如:

    s1 = 'python全栈22期'
    s8 = s1[-1:-6:-1]
    print(s8)                      #期22栈全

    #思考:倒序全部取出来?
    s1 = 'python全栈22期'
    s9 = s1[::-1]                 #期22栈全nohtyp

    练习:

    有字符串s = "123a4b5c"

    通过对s切片形成新的字符串s1,s1 = "123"
    s1 = s[:3]
    print(s1)
    通过对s切片形成新的字符串s2,s2 = "a4b"
    s2 =s[3:-2]
    print(s2)
    通过对s切片形成新的字符串s3,s3 = "1345"
    s3 =s[:-1:2]
    print(s3)
    通过对s切片形成字符串s4,s4 = "2ab"
    s4 =s[1:-2:2]
    print(s4)
    通过对s切片形成字符串s5,s5 = "c"
    s5 =s[-1]
    print(s5)
    通过对s切片形成字符串s6,s6 = "ba2"
    s6 =s[-3:0:-2]
    print(s6)

    2.str 字符串常用的操作方法

    不会对原字符串进行任何操作,都是产生一个新的字符串

    (1)upper (大写)lower (小写)

    s1 = s.upper()
    s1 = s.lower()

    # 应用:
    username = input('用户名')
    password = input('密码')
    code = 'QweA'
    your_code = input('请输入验证码:不区分大小写')
    if your_code.upper() == code.upper():
      if username == '太白' and password == '123':
        print('登录成功')
      else:
        print('用户名密码错误')
    else:
      print('验证码错误')

    2)startswith(开头) endswith(结尾)

    就是判断某某开头(结尾)是否正确

    s.startswith('内容')

    s.endswith('内容')

    比如:

     

    s = 'taiBAifdsa'
    print(s.startswith('t'))
    print(s.startswith('taiBAi'))

     

    #结果都是True,是t      taiBAi  开头

    (了解)加入切片:

    比如:

    s = 'taiBAifdsa'
    print(s.startswith('B',3,6))

    #结果都是True,将s切片,表示第3位到第5位(顾头不顾尾加1=6)的开头是B

     

    (3)replace (替换)

    s.replace(被替换内容,要替换的内容)

    比如:

    msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅'
    msg1 = msg.replace('alex','太白')            # 默认全部替换
    msg2 = msg.replace('alex','太白',2)         # 从左到右替换前2个
    print(msg1)
    #太白 很nb,太白是老男孩教育的创始人之一,太白长得很帅
    print(msg2)
    #太白 很nb,太白是老男孩教育的创始人之一,alex长得很帅

     

    (4)strip (去除空白):空格, (换行符), (TAB键)

    s.strip()

    比如:

    s4 = ' 太白 '               #太白前边既有空格又有换行
    print(s4)

    s5 = s4.strip()
    print(s5)                         #将空格、换行全部清除

    (了解)可以去除指定的字符

    比如:

    s4 = 'rre太r白qsd'
    s5 = s4.strip('qrsed')
    print(s5)
    #结果为:太r白,因为规则是:从前往后、从后往前同时进行,遇到剔除的内容就剔除,直到遇到不用剔除的内容停下,所以“太r白”中间的“r”没有剔除

     

    (5)split(非常重点)(分割)

    s.split('默认空格,或指定的分割符号或内容')

    默认按照空格分割,返回一个列表

    可以指定分隔符,进行分割

    str——>list

    比如:

    s6 = '太白:女神:吴超'
    l = s6.split(':')
    print(l)
    #结果:['太白', '女神', '吴超']

    (了解)

    s6 = ':barry:nvshen:wu'
    print(s6.split(":",2))
    #结果:['', 'barry', 'nvshen:wu'],让前2个分开,后面不分开

     

    (6)join(非常好用)(加入)

    '所要加入的内容'.join(s)

    s1 = 'alex'
    s2 = '+'.join(s1)
    print(s2,type(s2))
    #结果:a+l+e+x <class 'str'>

    list——>str(列表元素必须是字符串)

    比如:

    l1 = ['太白', '女神', '吴超']       # 前提:列表里面的元素必须都是str类型
    s3 = ':'.join(l1)
    print(s3)
    #结果:太白:女神:吴超

     

    (7)count(计数)

    s.count('要计数的内容')

    比如:

    s8 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa'
    print(s8.count('a'))
    #结果:5 ,即为a出现了5次

     

    (8)format(格式化输出)

    • 第一种用法:

    msg = '我叫{}今年{}性别{}'.format('大壮', 25, '男')

    print(msg)

    #结果:我叫大壮今年25性别男

    • 第二种用法:

    msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮', 25,'男')

    print(msg)

    #结果:我叫大壮今年25性别男我依然叫大壮

    • 第三种用法:

    a = 100

    msg = '我叫{name}今年{age}性别{sex}'.format(age=a,sex='男',name='大壮')

    print(msg)

    #结果:我叫大壮今年100性别男

    note:注意格式,s = ‘.....{a}....{b}......{c}...’.format(a=xxx,b=xxx,c=xxx),别忘了中间的{}

     

    (9)is 系列

    name.isalnum()          #字符串由字母或数字组成
    name.isalpha()           #字符串只由字母组成
    name.isdecimal()       #字符串只由十进制组成

    name.isdigit()             #字符串只由十进制组成(多一个bytes类型,b'123',返回True)

    比如:

    s1 = input('请输入您的金额:')
    if s1.isdecimal():
      print(int(s1))
    else:
      print('输入有误')
    #结果:会显示用户输入的金额,如果有非数字,会显示输入有误,结束程序

     

    (10)in

    s1 = '老男孩edu'
    print('老' in s1)
    print('老男' in s1)
    print('老ed' in s1)
    print('老ed' not in s1)
    #结果:
    True
    True
    False
    True
    (必须是相连的)

     

    (11)len:获取可迭代对象的元素总个数

    len(s)

    比如:

    s1 = '老男孩教育最好的讲师:太白'

    print(len(s1))
    #结果:13

    练习:将’老男孩教育最好的讲师:太白0’竖着显示:

    s1 = '老男孩教育最好的讲师:太白'
    index = 0
    while index < len(s1):
      print(s1[index])
      index += 1
    #结果:












     3.str操作方法的补充

    str 补充的方法:(练习一遍就行)

    • capitalize:首字母大写,其余变小写

      s1.capitalize()

    • swapcase:大小写翻转

      s1.swapcase()

    • title:每个单词的首字母大写

      s1.title()

    • center:是内容居中

      s1.center(长度,填充的东西)

    • find:通过元素找索引,找到第一个就返回,找不到就返回-1

      s1.find('a')

      index:通过元素找索引,找到第一个就返回,找不到就报错

      s1.index('o')

    # str :补充的方法练习一遍就行。
    s1 = 'taiBAi'
    # capitalize 首字母大写,其余变小写
    print(s1.capitalize())
    # swapcase 大小写翻转
    print(s1.swapcase())
    # title
    msg= 'taibai say3hi'
    print(msg.title()) #每个单词的首字母大写

    s1 = 'barry'
    # 居中
    print(s1.center(20))
    print(s1.center(20,'*'))

    # find :通过元素找索引,找到第一个就返回,找不到 返回-1
    # index:通过元素找索引,找到第一个就返回,找不到 报错
    print(s1.find('a'))
    print(s1.find('r'))
    print(s1.find('o'))
    print(s1.index('o'))
  • 相关阅读:
    2017-2018 第一学期201623班《程序设计与数据结构》-第2&3周作业问题总结
    ## 2020春软件工程助教工作总结【第十周】
    【西北师大-20软工】第一次团队作业成绩汇总
    2020春软件工程助教工作总结【第八周】
    2020春软件工程助教工作总结【第六周】
    【西北师大-20软工】第三次作业成绩汇总
    2020春软件工程助教工作总结【第四周】
    2020春软件工程助教工作总结【第三周】
    2020春软件工程助教工作总结【第二周】
    2020春软件工程助教工作总结 【第一周】
  • 原文地址:https://www.cnblogs.com/yangzm/p/10806928.html
Copyright © 2011-2022 走看看