18_str()函数_实现数字转型字符串_replace函数_字符串切片访问

18.str()实现数字转型字符串

str()可以帮助我们将其他数据类型转换为字符串。例如:

str(5.20) ==>5.20str(3.14e2)==>314.0str(True) ==>True

当我们调用 print() 函数时,解释器自动调用了 str()将非字符串的对象转成了字符串。我们 在面向对象章节中详细讲解这部分内容。

使用[ ]提取字符 (非常重要)

  字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量, 可以提取该位置的单个字符。

  正向搜索: 最左侧第一个字符,偏移量是0,第二个偏移量是 1,以此类推。直到len(str)-1 为止。
  反向搜索: 最右侧第一个字符,偏移量是 -1,倒数第二个偏移量是-2,以此类推,直到-len(str) 为止。

【操作】使用 [ ] 提取字符串中的字符

>>> a=[chr(i) for i in range(65,91)] 
# 推导式 加上 之前 16 节 展示 的  chr  函数 生成  a 到 z 的大写字母
# 如果没有 基础的 朋友 。 暂时 不用 了解 推导式。  
# 后面的博客会写 推导式的
>>> a
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
>>> a="".join(a)  # join 函数  后面  数据类型的 操作 会讲  join 函数的。
>>> a
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> a[0]
'A'
>>> a[3]
'D'
>>> a[4]
'E'
>>> a[26-1]
'Z'
>>> a[-1]
'Z'
>>> a[-26]
'A'
>>> a[-30] # 索引 越界。  -26 就是  A  了 。  所以 再 往后面 负数  也没有 字母了。
# 所以 python  抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

replace()实现字符串替换 去除 修改(生成一个新的变量。)

我们是生成了一个新的变量。 而不是直接在原来的 对象上进行 修改。 可以 通过 之前 展示 的 id 函数 查看 id 前后 是不一样的。

字符串去除

字符串是 “不可改变” 的,我们通过[ ]可以获取字符串 指定位置的字符

但是我们不能改变 字符串。我们尝试改变字符串中某个字符,发现报错了:

>>> a = 'abcdefghijklmnopqrstuvwxyz'
>>> a 
'abcdefghijklmnopqrstuvwxyz'
>>> a[3]='高' 
Traceback (most recent call last):
    File "<pyshell#94>", line 1, in <module> 
        a[3]='高' 
TypeError: 'str' object does not support item assignment

字符串不可改变。但是,我们确实有时候需要替换某些字符。 这时,只能通过 创建新的字符 串来实现。

>>> a = 'abcdefghijklmnopqrstuvwxyz'
>>> a
'abcdefghijklmnopqrstuvwxyz'
>>> id(a)
1855849633712
>>> a=a.replace("c","高")
>>> a
'ab高defghijklmnopqrstuvwxyz'
>>> id(a)
1855854011056 # 前后 id  不一样  说明 不是同一个对象了。

整个过程中,实际上我们是创建了新的字符串对象,并指向了变量a,而不是修改了以前的 字符串。 内存图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值