(一)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,而不是修改了以前的 字符串。 内存图如下:
posted on 2019-05-11 23:25 JACK#zhang 阅读(539) 评论(0) 编辑 收藏 举报