Python入门-2编程基本概念:15字符串-str()-使用[]提取字符串-replace()替换生成新字符串-内存分析

Posted jack-zh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门-2编程基本概念:15字符串-str()-使用[]提取字符串-replace()替换生成新字符串-内存分析相关的知识,希望对你有一定的参考价值。

一:str()实现数字转型字符串

  str()可以帮助我们将其他数据类型转换为字符串。例如: str(5.20) ==> ‘5.20’ str(3.14e2)==>’314.0’ str(True) ==> ‘True’

 1 >>> int(23.34)
 2       
 3 Traceback (most recent call last):
 4   File "<pyshell#35>", line 1, in <module>
 5     int(23.34)
 6 ValueError: invalid literal for int() with base 10: 23.34
 7 >>> int(23)
 8       
 9 23
10 >>> float(23.34)
11       
12 23.34
13 >>> str(5.20)
14       
15 5.2
16 >>> str(3.14e2)
17       
18 314.0
19 >>> str(True)
20       

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

二:使用[]提取字符

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

  正向搜索:

    最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1 为止。

  反向搜索:

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

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

 1 >>> a = abcdefghijklmnopqrstuvwxyz
 2       
 3 >>> a
 4       
 5 abcdefghijklmnopqrstuvwxyz
 6 >>> a[0]
 7       
 8 a
 9 >>> a[2]
10       
11 c
12 >>> a[25]
13       
14 z
15 >>> a[26]
16       
17 Traceback (most recent call last):
18   File "<pyshell#46>", line 1, in <module>
19     a[26]
20 IndexError: string index out of range
21 >>> a[-1]
22       
23 z
24 >>> a[-3]
25       
26 x
27 >>> a[-26]
28       
29 a
30 >>> a[-27]
31       
32 Traceback (most recent call last):
33   File "<pyshell#50>", line 1, in <module>
34     a[-27]
35 IndexError: string index out of range

三:replace()实现字符串替换

  字符串是“不可改变”的,我们通过[]可以获取字符串指定位置的字符,但是我们不能改变 字符串。我们尝试改变字符串中某个字符,发现报错了:

 1 >>> a = abcdefghijklmnopqrstuvwxyz
 2       
 3 >>> a
 4       
 5 abcdefghijklmnopqrstuvwxyz
 6 >>> a[3] = 
 7       
 8 Traceback (most recent call last):
 9   File "<pyshell#54>", line 1, in <module>
10     a[3] = 
11 TypeError: str object does not support item assignment

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

 1 >>> a = abcdefghijklmnopqrstuvwxyz
 2       
 3 >>> a
 4       
 5 abcdefghijklmnopqrstuvwxyz
 6 >>> a = a.replace(c,)
 7       
 8 >>> a
 9       
10 ab高defghijklmnopqrstuvwxyz

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

技术图片

 

以上是关于Python入门-2编程基本概念:15字符串-str()-使用[]提取字符串-replace()替换生成新字符串-内存分析的主要内容,如果未能解决你的问题,请参考以下文章

Python入门-2编程基本概念:07内置数据类型-基本算数运算符

Python入门-2编程基本概念:16字符串-切片slice操作-逆序

Python入门-2编程基本概念:13字符串-Unicode字符集-三种创建字符串的方式-len()

Python入门-2编程基本概念:17字符串-split()分割-join()合并-join()效率测试

Python入门-2编程基本概念:14字符串-转义字符-字符串拼接-字符串复制-input()获得键盘输入

Python入门-2编程基本概念:01程序的构成