python字符串操作

python字符串操作

  • 基本操作
    • 索引
    • 切片
    • 成员资格检查
    • 长度
    • 最小值和最大值
    • 字符串不可变性
  • 设置字符串的格式
    • 使用字符串格式设置运算符
    • 模板字符串
    • 字符串方法format(推荐用法)
      • 替换字段名
      • 基本转换
      • 宽度 精度和千位分隔符
      • 符号 对齐和填充
  • 字符串方法
    • center
    • find
    • join
    • lower
    • repleace
    • split
    • strip
    • translate
    • 判断字符串是否满足特定条件


本文所有代码、方法都已在python3.7.3下测试执行通过


基本操作

索引

切片

成员资格检查

长度

最小值和最大值

字符串不可变性

设置字符串的格式

使用字符串格式设置运算符

模板字符串

字符串方法format(推荐用法)


字符串包含有关如何设置格式的信息,而这些信息是使用一种微型格式指定语言
(mini-language)指定的。每个值都被插入字符串中,以替换用花括号括起的替换字段。

在格式字符串中,最激动人心的部分为替换字段。替换字段由如下部分组成,其中每个部分
都是可选的。

  • 字段名
    索引或标识符,指出要设置哪个值的格式并使用结果来替换该字段。除指定值
    外,还可指定值的特定部分,如列表的元素。
  • 转换标志
    跟在叹号后面的单个字符。当前支持的字符包括 r (表示 repr )、 s (表示 str )
    和 a (表示 ascii )。如果你指定了转换标志,将不使用对象本身的格式设置机制,而是使
    用指定的函数将对象转换为字符串,再做进一步的格式设置。
  • 格式说明符
    跟在冒号后面的表达式(这种表达式是使用微型格式指定语言表示的)。格
    式说明符让我们能够详细地指定最终的格式,包括格式类型(如字符串、浮点数或十六
    进制数),字段宽度和数的精度,如何显示符号和千位分隔符,以及各种对齐和填充方式。

替换字段名


最简单的情况下 向format提供其格式的未命名参数 并在格式字符串中使用未命名参数
此时按照顺序将字段与参数匹配

s = '{}, world!'.format('hello')

token = 'asdasf{}asdas'.format(1)

lst = 'asdf{}asd'.format([1, 2, 3])

print(token)
print(s)
print(lst)

打印结果为

asdasf1asdas
hello, world!
asdf[1, 2, 3]asd

当然 也可以为参数指定名称 或者或者通过索引指定在某个字段中使用相应的未命名参数
名称和索引可以混用

s = '{foo} {} {bar} {}'.format(1, 2, bar=4, foo=3)

token = '{foo} {1} {bar} {0}'.format(1, 2, bar=4, foo=3)

print(token)
print(s)

打印结果为

3 2 4 1
3 1 4 2

记住不能同时使用手工索引和自动索引 这样会让代码变得很混乱以及降低可读性

替换内容并非只能提供值本身 还可以访问其组成部分 例如下面的代码

import math

fullname = ["Alfred", "Smoketoomuch"]
name = "Mr {name[1]}".format(name=fullname)


tmpl = "The {mod.__name__} module defines the value {mod.pi} for π"
s = tmpl.format(mod=math)

print(name)
print(s)

程序运行结果为

Mr Smoketoomuch
The math module defines the value 3.141592653589793 for π

如上面的代码 可使用索引 还可使用句点表示法来访问导入的模块中的方法 属性 变量和函数


基本转换


指定要在字段中包含的值后 可以添加有关如何设置格式的命令
首先 我们来看提供一个转换标志的情况

print("{pi!s} {pi!r} {pi!a}".format(pi="π"))

程序运行结果为

π 'π' '\u03c0'

上述三个标志(s r和a)指定分别使用str repr和ascii 进行转换
函数 str 通常创建外观普通的字符串版本(这里没有对输入字符串做任何处理)
函数 repr 尝试创建给定值的Python表示(这里是一个字符串字面量)
函数 ascii 创建只包含ASCII字符的表示 类似于Python 2中的repr

此外 还可指定要转换的值是哪种类型 或者说将其视为那种类型

print('The number is {num}'.format(num=42))		# 整数格式输出
print('The number is {num:f}'.format(num=42))	# 浮点数格式输出
print('The number is {num:b}'.format(num=42))	# 二进制格式输出

程序执行结果为

The number is 42
The number is 42.000000
The number is 101010

字符串格式设置中的类型说明符如下表
python字符串操作_第1张图片
python字符串操作_第2张图片


宽度 精度和千位分隔符

设置浮点数的格式时 默认在小数点后显示六位小数 并且根据需要设置字段的宽度 不进行任何形式的填充
实际应用中 我们可以根据个人需求指定宽度和精度
字符串和数字的对齐方式是不同的

print('{num:10}'.format(num=3))
print('{name:10}'.format(name='Bob'))

程序运行结果为

         3(这个地方是告诉你这一行到此为止)
Bob       (这个地方是告诉你这一行到此为止)

浮点数指定精度和宽度如下

from math import pi
print('{pi:10.2f}'.format(pi=pi))

程序运行结果为

      3.14

对于其他类型我们也可以指定精度 不过一般不会有这种需求
例如字符串类型指定精度

print('{:.5}'.format('Guido van Rossum'))
Guido

可使用逗号添加千位分隔符

print('{:,}'.format(1000*1000))
1,000,000

符号 对齐和填充



字符串方法

center

find

join

lower

repleace

split

strip

translate

判断字符串是否满足特定条件

你可能感兴趣的:(python)