(一)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,而不是修改了以前的 字符串。 内存图如下:

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

时间: 2024-10-29 04:01:33

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

(一)Python入门-2编程基本概念:18字符串-驻留机制-内存分析-字符串同一判断-值相等判断

一:字符串驻留 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中. Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_).字母 和数字)会启用字符串驻留机制驻留机制. 二:字符串比较和同一性 我们可以直接使用==,!=对字符串进行比较,是否含有相同的字符. 我们使用is / not is,判断两个对象是否为同一个对象.比较的是对象的地址,即 id(obj1)是 否和 id(obj2)相等. 三:成员操作符 in /not in 关键字,判断某个字符(

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

一:字符串基本特点 很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程.实际上, 大多数程序员打交道最多的是“字符串”而不是“数字”.因为,编程是用来解决现实问题 的,因此逻辑思维的重要性远远超过数学能力. 字符串的本质是:字符序列.Python的字符串是不可变的,我们无法对原字符串做任何修改.但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果. Python不支持单字符类型,单字符也是作为一个字符串使用的.Python中字符串是基本数据类型. 二:字符串的编

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

一:split()分割 split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中).如果不指定分隔 符,则默认使用空白字符(换行符/空格/制表符).示例代码如下: 1 >>> a = "to be not to be" 2 3 >>> a.split() 4 5 ['to', 'be', 'not', 'to', 'be'] 6 >>> a.split("be") 7 8 ['to ', ' no

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

一:转义字符 我们可以使用“\+特殊字符”,实现某些难以用字符表示的效果.比如:换行等.常见的 转义字符有这些: 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \b 退格(Backspace) \n 换行 \t 横向制表符 \r 回车 [操作]测试转义字符的使用 1 >>> a = 'i\nlove\nu' 2 >>> a 3 'i\nlove\nu' 4 >>> print(a) 5 i 6 love

(一)Python入门-2编程基本概念:10时间表示-unix时间点-毫秒和微妙-time模块

一:时间表示 计算机中时间的表示是从“1970 年 1月 1日 00:00:00”开始,以毫秒(1/1000 秒) 进行计算.我们也把1970 年这个时刻成为“unix 时间点”. 这样,我们就把时间全部用数字来表示了.时间本质上就是数字 python中可以通过 time.time() 获得当前时刻,返回的值是以秒为单位,带微秒 (1/1000 毫秒)精度的浮点值.例如:1530167364.8566. [操作] 1 >>> import time 2 >>> b =

(一)Python入门-2编程基本概念:12同一运算符-整数缓存问题

一:同一运算符 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址. 运算符 描述 is  is是判断两个标识符是不是引用同一个对象 is not  is not 是判断两个标识符是不是引用不同对象 is 与 == 区别: is 用于判断两个变量引用对象是否为同一个,既比较对象的地址. == 用于判断两个变量引用对象的值是否相等,默认调用对象的 __eq__()方法. 二:整数缓存问题 Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对象

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

一:Python内置数据类型 每个对象都有类型,python中最基本的内置数据类型: 1. 整型:整数,2345,10,50 2. 浮点型:小数,3.14 或者科学计数法 314e-2 3. 布尔型:表示真假,仅包含:True.False 4. 字符串型:由字符组成的序列. “abc”,”speed”,“我爱你” 二:数字和基本运算符 Python 支持整数(如:50,520)和浮点数(如:3.14,10.0, 1.23e2),我们可以对数字做如下 运算. 运算符 说明 示例 结果 + 加法 3

(一)Python入门-2编程基本概念:08整数-不同进制-其他类型转换成整数

一:整数-不同进制 Python中,除10 进制,还有其他三种进制: ·0b或0B,二进制 0 1 ·0o 或0O,八进制 0 1 2 3 4 5 6 7 ·0x或 0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f 这三种进制可以非常方便的进行“位运算”操作.位运算知识后面介绍. [操作]测试不同进制 1 >>> 12 2 12 3 >>> 0b101 4 5 5 >>> 0o19 6 SyntaxError: inval

(一)Python入门-2编程基本概念:11布尔值-比较运算符-逻辑运算符及短路问题

一:布尔值 Python2中没有布尔值,直接用数字 0表示 False,用数字1 表示True. Python3中,把 True和 False 定义成了关键字,但他们的本质还是 1和 0,甚至可以和数字相加. 1 >>> a = True 2 >>> b=4 3 >>> a+b 4 5 二:比较运算符 所有比较运算符返回1表示真,返回0表示假.这分别与特殊的变量True和False等价. 以下假设变量a为15,变量b为 30: 运算符 描述 示例 ==