Python 3 入门手札(06)字符串 String

  1. 字符串(string)也是一种有顺序的「序列容器」,因此操作方法也和 List 很类似,不过和 tuple 一样,其元素是不能改变的。

  2. 同样有索引和切片的功能,例如:s=“0123456”在这里插入图片描述

  3. Python 没有「字符」类型,所以都是以〝只有一个字的字符串〞来表示。

  4. 在算符部分,+(串接)、*(重复 n 次)、in (包含于)及 not in 都可以使用。

  5. 在比较算符 >, >=, <, <=, ==, != 的比较,比的是字符的 Unicode。

  6. 若用 str() 由其他容器来建立字符串,则只会将容器转成易读文字,而不会将元素转到字符串中。例如:str([1, 2, 3])会转成 “[1, 2, 3]”,而不是 “123”。

  7. 字符串的内部函数,len(s) 可计算 s 的长度,max(s) 、min(s) 可得知 s 中最大、最小的字符。chr(n) 可以将 Unicode n 转为字符,ord( c ) 则将单一字符的字符串转为 Unicode。
    在这里插入图片描述

String 的方法(method)

  1. upper()、lower() 可将字符串全部转为大写、小写,然后将结果以新字符串传回。

  2. isalpha()、isdigit()、isalnum() 则可检查是否全部字符都是英文字、数字、或英数字。
    在这里插入图片描述

  3. s1.find(s2)、s1.rfind(s2) 可传回 s1 中第一次、最后一次出现 s2 的索引位置,若找不到则传回 -1。

  4. s1.startswith(s2)、s1.endswith(s2) 则可以检查 s1 是否以 s2 作为开头或结尾。

  5. s1.replace(s2, s3) 是将 s1 中的 s2 全部换成 s3,然后将结果以新字符串传回。
    在这里插入图片描述

  6. lstrip( c )、rstrip( c )、strip( c ) 用来删除左、右、左右的连续字符 “c”,并以新的字符串传回。如果参数 c 省略,则预设为空格符。
    在这里插入图片描述

  7. s1.split(s2) 可用 s2 为分隔来切割 s1,切出的片段会依序放在一个list 中传回。若 s2 省略,则预设为任意数量的空格符,因此连续的空白会被视为一个分隔,此外还会将头尾的空白去除。
    在这里插入图片描述

  8. s.join(容器) 会以 s 做分隔,将容器中的字符串元素一一组装起来。
    在这里插入图片描述

字符串的格式化功能

I. 使用 f- 字符串

  1. 由 Python 3.6 版开始,新增了一个非常简洁的字符串格式化方法:f-字符串,就是在字符串前面加上一个 f 或 F,然后再将变量或运算用大括号 { } 插入到欲输出的字符串中。
>>> a, b = 2, 3
>>> print( f"{a} 和 {b} 相乘的结果是 { a * b :+5.1f}”)
2 和 3 相乘的结果是  +6.0
  1. 字符串中若有 { 或 },需改成 {{ 、}} 来表示,例如:f’{{Hi,{“JJ”}.}}’ 执行结果为 {Hi, “JJ”}。

  2. Python 会先计算 { } 中的表达式,然后再依照 :spec 指定的格式输出。若省略 :spec,则使用预设格式。:spec 的语法如下:

    :[align][sign][#][0][width][,][.precision][type]

  • [align] 指定对齐方式,靠左(<)、靠右(>)、置中(^)、分散(=)。省略时,数值预设靠右,字符串预设靠左。

    在有指定对齐方式时,还可在最前面额外指定填充字符,例如:

print(f’{-5:$=5d}’)  # 结果为 -$$$5(宽度5,两端对齐并以 $ 填充)
  • [sign] 设定正负号的 3 种显示方式:〝+〞一律加正负号;〝-〞不加正号,只加负号;〝 〞正号时加一空白。省略时,预设为〝-〞。

  • [#] 设定时,若 type 设为2, 8, 16 进位时,要在前面加上 0b、0o 或 0x。

  • [0] 设定时,如果有设定 [width] 指定宽度比实际宽度大时,要在左边填充的字符,若省略则默认填空白。例如:f’{59.2:06.2f}’ 结果为 059.2。

  • [,] 设定时,表示要显示千位符号。例如:f’{1234567:,d}’ 结果为 1,234,567。

  • [Type] 代表显示类型,若省略时,依数据源的型别而定。

在这里插入图片描述

II. 使用 format() 方法

使用字符串的 format() 方法,来将 format() 中的参数依序带入字符串中的 {},另外也可用 {n} 来指定要代入第 n 个或直接指定欲代入的参数名称。
在这里插入图片描述
以上在 {} 中可以指定参数的序号或名称,若参数为 list, tuple 或 dict 则可再用 [] 指定元素。

如果是空的 {},则会依参数的顺序来代入,此时全部的 {} 都必须是空的才行。

在 {} 中除了可以指定参数外,同样可用 :spec 来指定输出格式,其语法和 f-字符串完全一样。

III. % 算符

使用 % 算符的方式为〝字符串 % 数据〞,在字符串中要用 % 来标示数据插入的位置及格式,而后面的数据若有多笔则要使用 tuple 装起来。例如:print(“9%s : %6.2f” % (‘价格’, 59.2)) 输出结果为〝价格 : 59.20〞。

在字符串中以 % 开头的 %s, %6.2f 代表格式化参数,会依序被 % 算符之后的 tuple 元素取代,常用的格式化参数如下:

  1. %d:填入整数,可加数字。例如:%5d 表示至少要输出 5 个字符,不足则左侧补空白。若 %05d 则不足是补 0。

  2. %f:填入浮点数,可加数字(同整数),另外还可指定小数字数(不足部分补 0)。

  3. %s:填入字符串,同样可加数字。例如:%5s 表示至少要输出 5 个字符,不足则左侧补空白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值