python切片一文让你全部搞懂

本文介绍了Python中字符串的创建方法,包括单引号和双引号的区别,以及如何通过索引和for循环访问字符串。重点讲解了字符串切片的语法和不可变性,以及format函数的使用。

5.1 字符串

这里介绍常用的几种方法

5.1.1 创建
a = 'apple'
b = "apple"
c = '''这是一个苹果
你知不知道'''   # 创建多行字符串

建议:在python使用字符串根据自己习惯要么都使用单引号,要么都是用双引号。这样代码可读性会更好,不会使代码混乱。

5.1.2 访问
  1. 知道下标: 可以通过索引访问

    print(a[3])
    
    

    这种方式比较简单

  2. 使用for循环

    for i in a:
        print(i) 
    
    

    for循环注意事项:

    for i in a:
        if(i=="a"):
            a[i] =5
        print(i)
    
    

    上面的代码会有什么问题吗?不妨运行一下:

    很显然会报一个:'str' object does not support item assignment

    其实上面已经提到了,我们的 str是不可变数据类型 ,所以我们不可以修改内部的值。

    延伸:我们在 JAVA中String也是不可变的,使用final修饰,我们replace犯法其实就是 new String() 创建一个新的对象。

  3. 使用切片

    我们不仅可以在字符串中使用切片,也可以在 其他对象,比如:列表,元组等。

    切片语法:

    切片的语法如下:

    sequence[start:stop:step]
    
    
    • start:切片的起始位置(包含)。 默认为 0 (思考默认是否正确后面有提到)
    • stop:切片的结束位置(不包含)。 省略不写时表示到末尾结束
    • step:切片的步长(可选参数,默认为 1)。

    这里需要说明一下,我们的start ,stop, step可以为正数,同时也可以为负数

    下面介绍切片的所有语法:(都是经过博主亲自测试整理,可以验证补充纠错),

    1. 不省略 :

      • 全为正:

        s ="applet"
        print(len(s))
        print(s[0:6:1])
        
        

        正常切片,一定记住不包含最后一个索引。

        需要注意:

        • 当 stop大于 字符串的索引时,我们会截取整个字符串。
      • 有负数的情况

        首先来讲讲每个位置上出现负数所代表的含义:

        • start 和 stop为负数表示从右往左的索引,以 -1 为例,-1 表示右边第一个元素,依次类推。
        • step为负数时,表示 从右往左(还是从start索引到 stop索引) 遍历,如果是-1 就说从右往左每次前进1步。

        看到这里你大概就可以明白了,这里需要注意的是,无论是正数还是负数,我们的 stop位置的索引,永远都是不包含的。

        s = "applet"
        #stop 为负数
        print('输出:{name}'.format(name = s[0:-1:1]))  # 输出:apple
        
        

        这个例子就充分说明了stop位置的索引永远都不包含。

      • 总结:

        如果我们想要截取一个有效的字符串,(字符串不为空),

        • 当 step为正时,我们的 stop要大于start
        • 当 step为负时,我们的 start要大于stop
    2. 省略(我们要看懂别人的代码,省略形式是必会的)

      • 不省略 冒号

        s = "applet"
        # 省略一位,我们不能省略冒号,省
        #省略 start位置
        print('输出:{name}'.format(name= s[:-3:-1]))  #输出:
        #省略 start
        print('输出:{name}'.format(name= s[:-3:1]))
        ​
        print('输出:{name}'.format(name= s[::-1]))
        
        

        输出结果:

        输出:te 输出:app 输出:telppa

        我们到这里就会发现一个结论 : start和 stop位置并不都是默认为 0和 最后一个位置,他其实和 step的正负有关,和start 和stop没有关系,

        • 如果step 为 1正数,从前往后,start默认index = 0 ,stop默认 index= 结尾结束
        • 如果step为 负数,从后往前,start默认为index = -1, stop默认 index=开始位置

        所以这里:

        print('输出:{name}'.format(name= s[::1]))
        ​
        print('输出:{name}'.format(name= s[::-1]))
        
        

        第一个结果是:输出:applet,拿到真个字符串

        第二个结果是:输出:telppa,字符串反转

      • 省略冒号,显然了只能省略一个冒号

        print('输出:{name}'.format(name= s[1:4]))
        print('输出:{name}'.format(name= s[1:]))
        print('输出:{name}'.format(name= s[:3]))
        print('输出:{name}'.format(name= s[:]))
        
        

        很显然了,我们省略的只能是 step的值,这里显然就很好理解每个代码的含义了。这里其实跟range函数是一样的省略的都是 step。并且大家要注意,省略步长,省略的步长是1

step的正负影响什么?

step为正,截取方向是从左到右,step为负,截取方向是从右向左。不要让多个正负号把自己搞混了,清楚这点十分重要。

5.1.3. 格式化format

我们在进行输入输出的时候都 喜欢将变量放在 字符串中进行打印,在python中我们使用format进行,

print("he is {name}".format(name ="lisi"))

这里还要注意的是:使用 f 在字符串前面去格式化,这种你方法更加的简单和方便

其他的方法我们在学完对象之后再看可能理解会深刻一点

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值