声明:本文纯属分享学习笔记与心得,交流讨论学习,不做商业及其他用途
目录
字符串基本操作
1、转义字符
符号 | 说明 |
\n (常用) | 换行,一般用于末尾,strip对其也是有效的 |
\t (常用) | 横向制表符(可认为是一个间隔符) |
\r (常用) | 回车 |
\v | 纵向制表符(会有一个男性的符号) |
\a | 响铃 |
\b | 退格符,将光标前移,覆盖(删除前一个) |
\f | 翻页(几乎用不到,会出现一个女性符号) |
\' | 转义字符中的单引号 |
\" | 转义字符中的双引号 |
\\ | 转义斜杆 |
2、占位符
%s (常用) | 字符串(采用str()的显示) |
%d (常用) | 十进制整数 |
%f (常用) | 浮点数 |
%F | 浮点数,与 %f 相同 |
%c | 单个字符 |
%b | 二进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数,基底为e |
%E | 指数,基底为E |
%r | 字符串(采用repr()的显示) |
%g | 指数(e)或浮点数(根据显示长度) |
%G | 指数(E)或浮点数(根据显示长度) |
%% | 字符“%”,显示百分号% |
字符串格式化
1、使用%符号格式化
运用占位符对输出的字符串进行格式化,这里例举最常用的三种用法(%s,%d,%f)
print('他叫%s,今年%d岁了,这次考试考了%f分'%('小明',18,95.5))
#他叫小明,今年18岁了,这次考试考了95.500000分
我们发现,打印出来的分数数值到了小数点后6位,如果只想取到前两位小数,对输出的格式(宽度或者小数位)有进一步要求,则只需将%f 改变成:%.2f ;相关格式说明举例如下:
语法: %宽度.小数位
%5f-----5个字符宽度的浮点数
%5.2f-----5个字符宽度并且带2个小数位的浮点数
%.2-----2个小数位的浮点数
%10s-----使用10个字符的宽度显示,如果不足在左边补齐空格(右对齐)
%-10s-----使用10个字符的宽度显示,如果不足在右边补齐空格(左对齐)
print('他叫%s,今年%d岁了,这次考试考了%.2f分'%('小明',18,95.5))
#他叫小明,今年18岁了,这次考试考了95.50分
2、使用f-string格式化
python3.6以上开发出来的新功能,在format格式化基础上优化,更简单易懂,运行起来的速度也更快
单行: 语法:语句前加f,需要填充的部分用大括号{}括起来,大括号里填写需要填充的变量或者数值等
name='小明'
age=18
print(f'他叫{name},今年{age}岁了')
#他叫小明,今年18岁了
多行:每行前面必须加f,否则就会出现下面第二个例子的情况
name='小明'
age=18
print(
f'他叫{name}'
f'今年{age}岁了')
#他叫小明今年18岁了
name='小明'
age=18
print(
f'他叫{name}'
'今年{age}岁了')
#他叫小明今年{age}岁了
3、使用format格式化
相对比前面两个格式化,format显得比较繁琐,所以一般不推荐使用
语法:<模板字符串>.format(<逗号分隔的参数>) 需要填充的地方用大括号{}括起来,语句末尾用.format()格式
print('他叫{},今年{}岁了'.format('小明',18))
#他叫小明,今年18岁了
如果对输出格式有进一步的要求,参考:
{<参数序号>:<格式控制标记>}
格式控制标记如下:
{:<填充><对齐><宽度><,><.精度><类型>}
a='python'
print("{0:30}".format(a) )#默认左对齐
#python
print("{0:>30}".format(a)) #右对齐
# python
print("{0:*^30}".format(a))#居中且使用*填充
#************python************
print("{0:-^30}".format(a)) #居中且使用-填充
#------------python------------
字符串常用方法
方法 | 作用 |
find() | 在某段字符串中,查找某个需要的字符串 |
join() | 只用于字符串连接,注意不能连接其他数值 |
lower() | 大写转小写 |
upper() | 小写转大写 |
swapcase() | 大小写互反转 |
replace() | 替换字符串 |
split() | 通过指定分割符对字符串进行切片 |
strip() | 去除首尾空格或一些首尾字符 |
translate() | 对字符进行交换或过滤 |
find() 查找方法(区分大小写)
语法:find('查找的字符串',起始位,结束位)
s='Welcome to China'
print(s.find('to'))#可以查找某个单词,返回单词起始处的索引
#8
print(s.find('o'))#也可以查找某个字母,找到第一个出现的字母的索引
#4
print(s.find('a',0,8))#在索引0到8之间查找字母a,如果没有找到,返回-1
#-1
join() 字符串连接
语法:'分隔符'.join(需要拼接的元素序列、字符串、元组、字典)
s=['a','b','c','d']
print('+'.join(s))#通过+号连接字符串
#a+b+c+d
print(''.join(s))#无符号连接字符串
#abcd
lower() 大写转小写
语法:str.lower()
s='Welcome to China'
print(s.lower())#将大写全部转为小写
#welcome to china
upper() 小写转大写
语法:str.upper()
s='Welcome to China'
print(s.upper())#将小写全部转为大写
#WELCOME TO CHINA
swapcase() 大小写互反转
语法:str.swapcase()
s='Welcome to China'
print(s.swapcase())#将大小写互反转
#wELCOME TO cHINA
replace() 替换字符串
语法:str.replace('原值','替换的值',替换次数)
s='Welcome to China'
print(s.replace('o','W'))#将所有字母o替换成字母W
#WelcWme tW China
print(s.replace('o','W',1))#将字母o替换成字母W,替换一个
#WelcWme to China
split() 通过指定分割符进行切片
语法:str.split(‘分隔符’,次数)
s='Welcome to China'
print(s.split())#通过空格分割
#['Welcome', 'to', 'China']
print(s.split('o'))#通过字母o分割
#['Welc', 'me t', ' China']
strip() 去除首尾空格或首尾字符
语法:str.strip('需要去除的字符')
s='------abcd------'
print(s.strip('-'))#去除首尾-符号
#abcd
a='aabbccddccbbaa'
print(a.strip('a'))#去除首尾的a字母
#bbccddccbb
translate() 对字符进行交换或过滤
语法:str.translate(映射表)
可用于加密,但是安全性不太高,所以不建议使用translate()进行加密
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)#创建映射表
s = "my name is XIAOMING"
print (s.translate(trantab))
#my n1m2 3s XIAOMING