18.str()实现数字转型字符串
str()可以帮助我们将其他数据类型转换为字符串。例如:
str(5.20) ==> ‘5.20’
str(3.14e2)==>’314.0’
str(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,而不是修改了以前的 字符串。 内存图如下: