有序、不可变的字符序列
用单引号、双引号或三引号创建:'hi'、"hi"、'''多行'''。索引、负索引、切片、len()、in 的用法与列表相同。
字符串不可变:s[0] = 'h' 会报 TypeError。+ 拼接、* 重复都产生新字符串。字符串不能直接和数字相加,要先用 str() 或 int() 转换;f'{变量}' 是最方便的拼接方式。
选一个预设示例:看拾取滑台逐个读取字符、upper() 与 replace() 怎样在后排生成新字符串,
以及 split() 与 join() 如何拆开、拼回。
前排每个铅字块是一个字符(␣ 表示空格),槽前上一行是正索引,下一行是负索引;压在上面的封条表示字符串不可变。字符串方法不会碰前排,而是在后排逐字浇铸一行新字符串,浇铸完成后同样封上封条。竖旗落下表示出错。右侧托盘存放 split() 切出的每一段,join() 再逐段取回、拼成前排的新字符串。
准备滑台会按访问顺序逐个移动。
用单引号、双引号或三引号创建:'hi'、"hi"、'''多行'''。索引、负索引、切片、len()、in 的用法与列表相同。
字符串不可变:s[0] = 'h' 会报 TypeError。+ 拼接、* 重复都产生新字符串。字符串不能直接和数字相加,要先用 str() 或 int() 转换;f'{变量}' 是最方便的拼接方式。
upper()、lower()、title()、strip()、replace() 都返回新字符串,原字符串不变。只写 s.upper() 而不赋值,s 不会变,要写 s = s.upper()。
find() 找不到返回 -1,index() 找不到会报错;count() 计数;startswith()、isalpha()、isdigit() 这类方法返回 True 或 False。
s.split() 按空白切分,s.split(',') 按逗号切分,结果都是字符串列表。
'分隔符'.join(列表):join 是分隔符的方法,不是列表的方法。列表里的元素必须全是字符串,含数字时先转换,例如 '-'.join(str(n) for n in nums)。