尚学堂Python第一季---字符串

第二次课Python---字符串

        字符串的本质:字符序列,不可变(无法对原字符串做任何修改),但可以将字符串的一部分复制到新创建的字符串,达到”看起来修改"的效果

 

        字符串的编码

                            python3:Unicode

                            字符串:支持16位的Unicode,ascii是Unicode编码的子码

 

        ord()---可将字符转化为对应的Unicode---ord("高"):39640

        chr()---可以把十进制数字转化成对应的字符chr(66):"B"

 

        引号创建字符串

                        可以使用:单引号或双引号

                                好处:可以创建本身含有引号的字符串,而不用使用转义字符  “I'm a teacher!"

        连续三个单引号或三个双引号,可以创建多行字符串

空字符串---Python3允许有空字符串,字符长度为0,可以使用len(),查看长度

转义字符---”\+特殊字符",实现某些难以用字符表示的效果

 

字符串拼接

    1.可以使用+将多个字符串拼接起来

            如果+两边都是字符串,则拼接起来

            如果+两边都是数值,则进行加法运算

            如果+两边类型不同,报错

 

2.可以将多个字面字符串直接放到一起实现拼接---’啊啊‘’bb':‘啊啊bb'

 

字符串复制---“*”

 

不换行打印

    print打印之后会自动换行,print(打印的内容对象,end = "任意字符串"),实现不换行打印

 

从控制台读取字符串---input()

 

str()---数字类型转化为字符串

调用print()函数时,解释器自动调用了str()将非字符串的对象转成了字符串。

 

使用【】提取字符

    字符串的本质:字符序列,可以在字符串后面添加【】,在【】里面指定偏移量,可以提取该位置的单个字符

    正向搜索:从左至右,字符串的第一个字符的偏移量为0,第二个为1,以此类推,最后一个为len(str) - 1

    反向搜索:从右至左,字符串的最后一个自读的偏移量为-1,倒数第二个为-2,以此类推,第一个为-len(str)

 

replace()----字符串替换

    字符串是“不可改变的,可以通过【】获得某个我位置的单个字符,但是不能对这单个字符进行替换,否则会报错,字符串不可改变,但是有时候需要替换某些字符,只能通过创建新的字符串来改变

从图片中的结果可以看到前后变量a的地址不同,说明我们创建了一个新的字符串对象,并指向了变量a,而不是修改了以前的字符串

 

slice--切片(快速的提取子字符串),标准格式:【start(起始偏移量,起始点:0):end(终止偏移量,终止点:end - 1):step(步长,即跳过几个单个字符进行提取)】

切片时,起始偏移量和终止偏移量不在[0,length -1]这个范围,起始偏移量小于0则会当做0,终止偏移量大于length -1则会被当成-1

 

 

split--分割(基于指定分隔符将字符串分隔成多个子字符串(存储到列表中),不指定分隔符,则默认为:空白字符(换行符/空格/制表符)

join--合并(用于将一系列子字符串连接起来(将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串)

 

+与join之间的区别:

”+“----去连接字符串

 a = "abc"    #这是一个对象

print(id(a))

 a  = a + "abc"

print(id(a))   #这是一个对象,前面与后面的print中输出的地址不同,说明这两个对象不是同一个对象

 

join---去连接字符串

 b = ["sdfdf","dfj","weoro"]

 b = "*".join(b)

print(id(b))

 b = "你是一个笨蛋".join(b))

print(id(b))                              

 

  

 

字符串驻留机制和字符串的比较

    仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中,python支持字符串驻留机制,对于符合标识符规则的字符串会启用字符串驻留机制 

==和!=:用来比较两个字符串的值是否相同

is和not is :用来比较两个字符串是否为同一个对象,它们的地址可以使用id()来查看

 

in/not in ---判断某个字符(子字符串)是否存在于字符串中

 

字符串中常见的方法

第一类:查找方法

 

第二类:去除首尾信息

 

第三类:大小写转换

    

第四类:格式排版

 

字符串格式化---format

        基本语法:{}和:来代替以前的%

        format函数可以接受不限个参数,位置可以不按顺序

        通过{索引}/{参数名},直接映射参数值,实现对字符串的格式化

填充与对齐

        ^ < > 分别代表:剧中,左对齐,右对齐,后面带宽度

        :即冒号之后带填充的字符,只能是一个字符,不指定的话默认是用空格填充

数值填充与对齐

    浮点数:f

        整数:d

 

 

可变字符串

    python中,字符串属于不可变对象,不支持原地修改,如果修改其中的值,就相当于重新创建了了一个字符串对象。但是,经常确实需要原地修改字符串的值,所可以使用:

io.StringIO

array数组

 

作业:

x1 = 1

y1 = 2

a = 3

b = 4

pyt_1 = (5+10*x1)//5 + (13*(y1 - 1)*(a+b))//x1 + 9*(5//x1+((12+x1)//y1))

print(pyt_1)

 

 

从控制台输入用户的月薪,进行运算计算出年薪。打印输出用户的年薪

 

使用字符串复制,用计算机打印出“爱你一百遍”,打印100 次

 

将”to be or not to be”字符串倒序输出

 

将”sxtsxtsxtsxtsxt”字符串中所有的 s输出

判断如下输出结果,并文字解释原因:

 >>> a = "abd_33"

 >>> b = "abd_33" 

>>> c = "dd#" 

>>> d = "dd#" 

>>> a is b         #输出 true or false? ---true

>>> c is d         #输出true or false?----false,因为“#"不是标识符

 

写出如下代码打印的结果: 

>>> c = "名字是{name},年龄是{age}" 

>>> c.format(age=19,name='高淇')

输出为:名字是高淇,年龄是19

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值