码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-05-12 01:36:15      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:string   erro   ali   assign   数据类型转换   ack   反向   偏移量   3.1   

一: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()替换生成新字符串-内存分析

标签:string   erro   ali   assign   数据类型转换   ack   反向   偏移量   3.1   

原文地址:https://www.cnblogs.com/jack-zh/p/10811357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!