python学习笔记4——字符串
1. 字符串操作符:三种
| 运算符 | 名称 | 示例 | 说明 | 结果 |
|---|---|---|---|---|
+ | 字符串连接 | str1 + str2 | 将两个字符串连接成一个新字符串 | 合并后的字符串 |
* | 字符串重复 | str * n | 将字符串重复n次(n为整数) | 重复后的字符串 |
in | 成员运算符 | substr in str | 判断子字符串是否在字符串中 | True或False |
2. 字符串索引:<字符串>[索引] 表示字符串中字符的所在位置——若字符串长度为n,则字符串索引的范围为0 ~ n-1 (python左闭右开[begin, end)规则)
#其他情况: s[-1] #输出字符串最后一位字符串切片:<字符串>[开始索引:结束索引:步长] 获取指定索引区间的字符(不包含结束索引对应的字符)
——若不指定开始索引/结束索引/两者均不指定,则默认从零索引/到最后一位/取全部字符
s[1:2] #取字符串的1-2号位字符(结束索引对应字符不取) s[1:] #从字符串的1号位开始取,一直到结束 s[:4] #从字符串的0号位开始取,一直到3号位 s[:] #取整个字符串 # 步长: s[::-1] #步长为-1——从后往前逆序排列字符串3. 字符串函数:
| 函数名 | 语法 | 说明 | 示例 | 结果 |
|---|---|---|---|---|
len() | len(string) | 返回字符串的长度(字符个数) | len("Python")len("你好世界")len("") | 640 |
str() | str(object) | 将对象转换为字符串类型 | str(123)str(3.14)str(True)str([1, 2, 3]) | "123""3.14""True""[1, 2, 3]" |
ord() | ord(char) | 返回单个字符的Unicode编码(整数) | ord('A')ord('a')ord('中')ord('0') | 65972001348 |
chr() | chr(code) | 将Unicode编码转换为对应的字符 | chr(65)chr(97)chr(20013)chr(48) | 'A''a''中''0' |
max() | max(string) | 返回字符串中Unicode编码最大的字符 | max("Python")max("abc123")max("你好啊") | 'y''c''啊' |
min() | min(string) | 返回字符串中Unicode编码最小的字符 | min("Python")min("abc123")min("你好啊") | 'P''1''你' |
4. 字符串常见处理方法:处理后均不改变字符串原本值
str.upper() | 返回一个字符串:将str字符串所有字符转换为大写 | "Hello".upper() | "HELLO" |
str.lower() | 返回一个字符串:将str字符串所有字符转换为小写 | "Hello".lower() |
|
str.count(sub,begin,end) | 返回一个整数:子字符串sub在str字符串内出现次数 | "hello".count('l') | 2 |
str.find(sub,begin,end) | 返回一个整数:查找子串,返回首次出现索引(找不到返回-1) | "hello".find('l')"hello".find('x') | 2-1 |
str.index(sub,begin,end) | 返回一个整数:查找子串,返回首次出现索引(找不到抛出异常) | "hello".index('l')"hello".index('x') | 2抛出 ValueError |
str.isalpha() | 返回T/F:判断字符串是否只包含字母 | "abc".isalpha()"abc123".isalpha() | TrueFalse |
str.isdigit() | 返回T/F:判断字符串是否只包含数字 | "123".isdigit()"abc".isdigit() | TrueFalse |
str.strip(chars) | 返回一个字符串:去除str字符串两端的chars中的字符(忽略chars默认空格) |
|
|
str.join(iter) | 返回一个字符串:给iter变量的每一个元素后增加一个str字符串 | ','.join(['a', 'b', 'c']) | "a,b,c" |
str.replace(old, new) | 返回一个字符串:用new新字符串替换old子字符串 | "hello".replace('l', 'L') | "heLLo" |
str.center(width, fillchar) | 返回一个字符串:字符串居中函数,用指定的填充字符(默认空格)填充两侧 | "hello".center(8) | " hello "(左一右二,因为无法平分) |
str.split(sep=None) | 返回一个列表:由str根据sep被分割的部分组成,省略sep默认空格 | "a,b,c".split(",") | ['a', 'b', 'c'](遇到","分割) |
str.capitalize() | 返回一个字符串:首字母大写,其余小写 | "hello WORLD".capitalize() | "Hello world" |
▲关于函数中参数begin和end:一般表示从字符串的begin索引开始,截至end-1索引(end不计入操作)所形成的字段进行操作。
5. 补充:format( )方法
① format( )方法的基本使用
<模板字符串>.format(<参数列表>)
模板字符串:是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。
槽:用{ }表示,与format( )中的参数列表对应。
# 最基本的用法 print("{} is {} years old".format("Alice", 25)) # 输出:Alice is 25 years old print("{0} is {1} years old".format("Alice", 25)) #标记槽的数值 # 输出:Alice is 25 years old print("{1} is {0} years old".format("Alice", 25)) #通过改变槽的数值可以调换位置 # 输出:25 is Alice years old print("{} is {} years old".format(25)) #槽数量和参数数量不匹配 # 输出:报错 print("{0} is {0} years old".format(25)) #强行标记同一参数对应多个槽 # 输出:25 is 25 years old # 多个槽 print("{} {} {}".format("I", "love", "Python")) # 输出:I love Python② format( )方法的格式控制:
槽可以更加丰富—— {<参数序号>:<格式控制标记>}
{ [参数序号] : [填充] [对齐] [符号] [宽度] [,] [.精度] [类型] }| 标记 | 选项 | 说明 | 示例 | 结果 |
|---|---|---|---|---|
| 填充 | 任意字符 | 用于填充的字符(默认为空格) | "{:*<10}".format("Hi")"{:0>5}".format(123) | Hi********00123 |
| 对齐 | < | 左对齐 | "{:<10}".format("左") | "左 " |
> | 右对齐 | "{:>10}".format("右") | " 右" | |
^ | 居中对齐 | "{:^10}".format("中") | " 中 " | |
= | 填充在符号后 | "{:=+10}".format(-5) | - 5 | |
| 符号 | + | 正数前加+,负数前加- | "{:+d} {:+d}".format(5, -5) | +5 -5 |
- | 负数前加-,正数前不加(默认) | "{:-d} {:-d}".format(5, -5) | 5 -5 | |
| 空格 | 正数前留空,负数前加- | "{: d} {: d}".format(5, -5) | " 5 -5" | |
| 宽度 | 整数 | 最小宽度 | "{:10}".format(123) | " 123" |
| , | 千位分隔 | 使用逗号分隔千位 | "{:,}".format(1234567) | 1,234,567 |
| .精度 | 整数 | 浮点数小数位数/字符串最大长度 | "{:.2f}".format(3.14159)"{:.3}".format("Python") | 3.14Pyt |
| 类型 | d | 十进制整数 | "{:d}".format(123) | 123 |
b | 二进制整数 | "{:b}".format(10) | 1010 | |
o | 八进制整数 | "{:o}".format(10) | 12 | |
x/X | 十六进制整数(小写/大写) | "{:x} {:X}".format(255, 255) | ff FF | |
f/F | 定点数 | "{:f}".format(3.14) | 3.140000 | |
e/E | 科学计数法 | "{:e}".format(12345) | 1.234500e+04 | |
g/G | 自动选择f或e | "{:g}".format(12345) | 12345 | |
% | 百分比格式 | "{:.2%}".format(0.8567) | 85.67% | |
c | Unicode字符 | "{:c}".format(65) | A | |
s | 字符串 | "{:s}".format("Hi") | Hi |
<填充>:超过字符串长度小于宽度的部分用该字符填充
<宽度>:若宽度大于字符串长度,则以宽度为准;若宽度小于字符段长度,则以字符串长度为准
