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

  • 相关阅读:
    LeetCode15题: 寻找三数和,附完整代码
    LeetCode 11 水池蓄水问题
    分布式初探——分布式事务与两阶段提交协议
    高等数学——讲透求极限两大方法,夹逼法与换元法
    书籍推荐——一本老书,吴军老师《数学之美》
    概率统计——期望、方差与最小二乘法
    算法浅谈——递归算法与海盗分金问题
    机器学习基础——带你实战朴素贝叶斯模型文本分类
    线性代数精华——从正交向量到正交矩阵
    LeetCode10 Hard,带你实现字符串的正则匹配
  • 原文地址:https://www.cnblogs.com/jack-zh/p/10811357.html
Copyright © 2020-2023  润新知