day12 字符串的相关操作

字符串介绍

<1>python中字符串的格式

如下定义的变量a,存储的是数字类型的值

    a = 100

如下定义的变量b,存储的是字符串类型的值

    b = "hello itcast.cn"
    或者
    b = 'hello itcast.cn'

小总结:

  • 双引号或者单引号中的数据,就是字符串

    字符串输出

    demo

        name = 'itheima'
        position = '讲师'
        address = '北京市'
    
        print('--------------------------------------------------')
        print("姓名:%s" % name)
        print("职位:%s" % position)
        print("公司地址:%s" % address)
        print('--------------------------------------------------')
    

    结果:

        --------------------------------------------------
        姓名: itheima
        职位: 讲师
        公司地址: 北京市
        --------------------------------------------------
    

    字符串输入

    之前在学习input的时候,通过它能够完成从键盘获取数据,然后保存到指定的变量中;

    注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

    demo:

        userName = input('请输入用户名:')
        print("用户名为:%s" % userName)
    
        password = input('请输入密码:')
        print("密码为:%s" % password)
    

    结果:(根据输入的不同结果也不同)

        请输入用户名:itheima
        用户名为: itheima
        请输入密码:haohaoxuexitiantianxiangshang
        密码为: haohaoxuexitiantianxiangshang
    

    下标和切片

    1. 下标索引

    所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间

    • 生活中的 "下标"

      超市储物柜

      高铁二等座

      高铁一等座

      绿皮车

    • 字符串中"下标"的使用

      列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。

      如果有字符串:name = 'abcdef',在内存中的实际存储如下:

      如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

      
         name = 'abcdef'
      
         print(name[0])
         print(name[1])
         print(name[2])
      

      运行结果:

      a
      b
      c
      

    2. 切片

    切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

    切片的语法:[起始:结束:步长]

    注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。

    我们以字符串为例讲解。

    如果取出一部分,则可以在中括号[]中,使用:

    
         name = 'abcdef'
    
         print(name[0:3]) # 取 下标0~2 的字符
    

    运行结果:

    
         name = 'abcdef'
    
         print(name[0:5]) # 取 下标为0~4 的字符
    

    运行结果:

    
         name = 'abcdef'
    
         print(name[3:5]) # 取 下标为3、4 的字符
    

    运行结果:

    
         name = 'abcdef'
    
         print(name[2:]) # 取 下标为2开始到最后的字符
    

    运行结果:

    
         name = 'abcdef'
    
         print(name[1:-1]) # 取 下标为1开始 到 最后第2个  之间的字符
    

    运行结果:

     >>> a = "abcdef"
     >>> a[:3]
     'abc'
     >>> a[::2]
     'ace'
     >>> a[5:1:2] 
     ''
     >>> a[1:5:2]
     'bd'
     >>> a[::-2]
     'fdb' 
     >>> a[5:1:-2]
     'fd'
    

    想一想

    • (面试题)给定一个字符串aStr, 请反转字符串
    # 索引是通过下标取某一个元素
    # 切片是通过下标去某一段元素
    
    s = 'Hello World!'
    
    print(s[4])
    
    print(s)
    
    print(s[:]) # 取出所有元素(没有起始位和结束位之分),默认步长为1
    
    print(s[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)
    
    print(s[:5])  # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)
    
    print(s[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
    
    print(s[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
    
    print(s[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
    
    # python 字符串快速逆置
    print(s[::-1])  # 从后向前,按步长为1进行取值

    字符串常见操作

    如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作

    <1>find

    检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

    mystr.find(str, start=0, end=len(mystr))
    
    <2>index

    跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

    mystr.index(str, start=0, end=len(mystr)) 
    

  • <3>count

    返回 str在start和end之间 在 mystr里面出现的次数

    mystr.count(str, start=0, end=len(mystr))
    

    <4>replace

    把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

    mystr.replace(str1, str2,  mystr.count(str1))
    
  •  
            
    <5>split

    以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串

    mystr.split(str=" ", 2)    
    
    <6>capitalize

    把字符串的第一个字符大写

    mystr.capitalize()
    
    <7>title

    把字符串的每个单词首字母大写

    >>> a = "hello itcast"
    >>> a.title()
    'Hello Itcast'
    
    <8>startswith

    检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False

    mystr.startswith(hello)
    
    <9>endswith

    检查字符串是否以obj结束,如果是返回True,否则返回 False.

    mystr.endswith(obj)
    
    <10>lower

    转换 mystr 中所有大写字符为小写

    mystr.lower()        
    


  • <11>upper

    转换 mystr 中的小写字母为大写

    <12>ljust

    返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

    <13>rjust

    返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

    <14>center

    返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

    <15>lstrip

    删除 mystr 左边的空白字符

    16>rstrip

    删除 mystr 字符串末尾的空白字符

    <17>strip

    删除mystr字符串两端的空白字符

    <18>rfind

    类似于 find()函数,不过是从右边开始查找.

    
    

    <19>rindex

    类似于 index(),不过是从右边开始.

    <20>partition

    把mystr以str分割成三部分,str前,str和str后

    <21>rpartition

    类似于 partition()函数,不过是从右边开始.

    <22>splitlines

    按照行分隔,返回一个包含各行作为元素的列表

    
    

    <23>isalpha

    如果 mystr 所有字符都是字母 则返回 True,否则返回 False

    
    

    <24>isdigit

    如果 mystr 只包含数字则返回 True 否则返回 False.

    
    

    <25>isalnum

    如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

    <26>isspace

    如果 mystr 中只包含空格,则返回 True,否则返回 False.

    <27>join

    mystr 中每个元素后面插入str,构造出一个新的字符串

    还有很多操作,大家可以自行尝试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值