Python 字符串学习笔记(持续更新)

本贴最后更新于 2690 天前,其中的信息可能已经天翻地覆

字符串

  • 写法 单引号、双引号均可
    "hello world"
    'hello world'

  • 对引号转译
    \'或者\"

  • 拼接字符串

      s1 = "hello"
      s2 = "world"
      s3 = s1+s2
      print(s1+s2)
    
  • 字符串转换
    str:值转换为合理形式的字符串,(给人看的)
    repr:创建一个字符串,以合法的 python 表达式的形式表示值,显示使用(给 python 看的)

str()一般是将数值转成字符串。
repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思。如 >list,dict 使用 str()是无效的,但使用 repr 可以,这是为了看它们都有哪些值,为了显示之用。

  • 长字符串

  • 1、用三个单引号或者双引号代替,字符串可跨行

      '''
      """
    
  • 2、行后加反斜杠

    \
    
  • 原始字符串

  • 1、原始字符串以 r 开头,

  • 2、原始字符串不能以 \ 结尾,仍要使用需对反斜杠进行转译 \\

  • Unicode 字符串

  • 1、字符串以 u 开头

字符串基本操作

  • 所有的标准序列操作(索引、分片、乘法、判断成员资格、求长度、取最大值、最小值)对字符串都适用。
  • 注意:字符串是不可变的

字符串格式化

  • % 实现格式化,想到了 C/C++ 有没有

      "hello %s ,my name is %s"%("name1","name2")
      hello name1 ,my name is name2
    
  • 保留小数点位数

      v = 3.2321332;
      print("%.3f"%v) f表示浮点数
      23123.232
    
  • Python 还提供了模版字符串

      s = Template(' hello $x');
      print(s.substitute(x='boy'))
      hello boy
    
      s = Template(' hello  ${x}s');
      print(s.substitute(x='boy'))
      hello boys
    
      插入美元符号$
    
      s = Template(' hello $$ ${x}s');
      print(s.substitute(x='boy'))
      hello $ boys
    
      使用字典存储匹配的值
    
      s = Template(' hello $ ${x}s');
      d={};
      d['x'] = 'boy';
      d['y'] = 'yy';
      print(s.substitute(d))
      hello $ boys
    

字符串常量

  • string.digits:包含数字 0-9 的字符串
  • string.ascii_letters:包含所有字符(大写或者小些的字符串)
  • string.ascii_lowercase:包含所有小写字母的字符串
  • string.printable:包含所有可打印字符的字符串
  • string.punctuation:包含所有标点的字符串
  • string.ascii_uppercase:包含所有大写字母的字符串

字符串方法

  • 1、find:在一个较长的字符串中查找子字符串,返回子字符串所在位置最左端索引,未找到返回-1

      str = "hello";
      ix = str.find("el");
      print(ix) : 1
    
  • find 提供了可选的起始点和终点参数

      str = "hello hi hi hello"
      ix = str.find('hello',1); 从索引为1开始找
      print(ix) : 12 因为从索引1开始找,第一个不符合,所以找的死最后一个hello
      str = "hello hi hi hello"
      ix = str.find('hello',1,12); 从索引为1开始找
      print(ix) : -1 从1找到12没找到
    
  • 2、join:在队列中添加元素,也就是将指定字符串添加到队列元素之间返回一个新的字符串

      lst = ['1','2','3'];
      str = '+';
      print(str.join(lst))  : 1+2+3
      print(str) :  +
    
  • 3、lower:返回字符串的小写字符

      str1 = "HELLO";
      str2 = str1.lower();
      print(str1) : HELLO
      print(str2) : hello
    
  • 4、replace:返回某字符串所在匹配项被替换之后得到的字符串

      str1 = "hello";
      str2 = str1.replace('ll','xx');
      print(str1) : hello
      print(str2) : hexxo
    
  • 5、split:分割字符串,与 join 反过来

      str = "1+2+3";
      lst = str.split('+');
      print(lst) : ['1','2','3']
      print(str) : 1+2+3
    
  • 6、strip:返回去除了两侧空格的字符串,内部的不受影响

  • 7、translate:与 replace 类型,其替换字符串中的单个字符,是同时多个一起替换,一般情况下性能优于 replace

  • 使用 translate 时我们需要先获得一张转换表

  • 静态函数 str.maketrans()返回可用于 str.translate()方法的转换表。

  • 如果只有一个参数,它必须是 dict 类型,键 key 为长度为 1 的字符(unicode 字符码或者字符),值 value 为任意长度字符串或者 None。键 key 对应的字符将被转换为值 value 对应的字符(串)。

  • 如果有两个参数,他们长度必须相等,每一个 x 字符将被转换为对应的 y 字符。如果有第三个参数,其对应的字符将被转换为 None。

      str1 = 'abcxyz123'
      trans = str1.maketrans('abc', 'ABC', '123456')
      str2 = str1.translate(trans)
      print(str2) : ABCxyz
    
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    545 引用 • 672 回帖
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...