概述
1.字符串基本操作
字符串是由字符组成的一串字符序列,字符串是有顺序的,从左到右,索引从0开始,依次递增。
Python中字符串类型:str。
Python中字符串的三种表示方式:
(1)普通字符串:采用单引号(')或双引号(")括起来的字符串。
(2)原始字符串(raw string):在普通字符串的前面加 r,字符串中的特殊字符不需要转义。
(3)长字符串:字符串中包含换行、缩进等排版字符,使用三重单引号(''')或三重双引号(""")括起来的字符串。
1.1 普通字符串
Python中字符串采用Unicode编码。
>>> s='Hello World!'
>>>s'Hello World!'
转义字符:
转义字符
描述
(在行尾时)
换行
t
水平制表符
n
换行
r
回车
"
双引号
'
单引号
>>> s='HellotWorld!'
>>> print(s)
Hello World!
1.2 原始字符串
原始字符串:在普通字符串前面加 r。原始字符串可以直接按照字符串使用,没有转义符。
>>> s=r'HellotWorld!'
>>> print(s)
HellotWorld!
1.3 长字符串
长字符串可以包含换行、缩进等排版字符。
>>> s='''Hello
... World!'''
>>> print(s)
Hello
World!
2.字符串格式化
Python提供3种字符串格式化方法:
(1)%运算符
(2)内置函数format()
(3)创建字符串对象配合format(),使用{}进行替换
2.1 %运算符 — 格式字符串
语法:
%[flag][width][.precision]
其中,%:标记转换说明符开始
flag:转换标记
width:最小宽度,转换后的值所保留的最小字符个数。如果是*,则宽度从值元组中读取。
precision:精度,如果转换的实数,精度表示出现在小数点后的位数;如果转换的是字符串,则表示最大宽度。如果是*,则精度从值元组中读取。
宽度和精度都是整数,通过点号(.)分隔。两个都是可选参数,如果给出精度,则必须包含点号。
转换类型:
符号
描述
符号
描述
%c
格式化字符及其ASCII码
%s
格式化字符串
%d
格式化整型
%u
格式化无符号整型
%o
格式化无符号八进制数
%x,%X
格式化无符号十六进制
%f
格式化浮点数字,可指定精度值
%e,%E
用科学计数法格式化浮点数
%g,%G
%f和%e的简写,十进制整数或浮点数。
%%
输出数据时显式百分号
%r
使用repr()函数输出
转换标志(flag):
符号
描述
符号
描述
'#'
十六、八进制进行转换时,可在前方补0。
'0'
数值前补0
'-'
靠左对齐,若与0同时使用,会优先于0。
''
保留一个空格
>
靠右对齐
<
靠左对齐
+
在转换值前加正负号
>>> '%c'%97 #ASCII码输出字符
'a'
>>> '年同比变化:%.2f%%'%120.987 #输出百分号
'年同比变化:120.99%'
>>> '%o'%10 #转换八进制数
'12'
>>> '%#o'%10 #转换补0八进制数
'0o12'
>>> '%x'%127 #转换十六进制数
'7f'
>>> '%#x'%127 #转换补0十六进制数
'0x7f'
>>> from math importpi>>> '%010.5f'%pi #pi转换:带5位小数、长度为10、位数不足0填充的字符串
'0003.14159'
>>> s = '%-10.5f'%pi #左对齐
>>>s'3.14159'
>>>len(s)10
>>> s = '%-010.5f'%pi #-优先于0
>>>s'3.14159'
>>> '%10.5f'%pi #空格填充
'3.14159'
>>> '%-+10.5f'%pi #左对齐显示正负符号
'+3.14159'
>>> '%+-10.5f'%pi #左对齐显示正负符号
'+3.14159'
>>> '%-+10.5f'%-pi #左对齐显示正负符号
'-3.14159'
>>> '%3.5f'%pi #最小宽度 < 实际宽度,显示实际宽度
'3.14159'
>>> '%.5s'%('Hello World') #字符串精度值:最大宽度
'Hello'
>>> s = '%10.5s'%('Hello World') #字符串截取最大宽度后空格填充
>>>s'Hello'
>>>len(s)10
>>> '%.*s'%(5,'Hello World') #精度从元组中读取
'Hello'
>>> '%*.*s'%(10,5,'Hello World') #宽度、精度从元组中读取
'Hello'
2.2 内置函数format()
>>> '{:,}'.format(10000) #千分位
'10,000'
3.字符串方法
3.1 find()方法
find()方法:用于检测字符串中是否包含子字符串sub。如果指定start(开始)和end(结束),则在指定范围内检测。
如果包含子字符串,返回开始的索引;否则返回-1。
find()语法:
str.find(sub[, start[, end]])
其中,sub:指定检测的子字符串,
start:开始索引,默认为0;
end:结束索引,默认为字符串的长度。
返回结果为子字符串所在位置的最左端索引,如果没有找到,则返回-1。
help查看find()方法定义:
>>> help(str.find)
Help on method_descriptor:
find(...)
S.find(sub[, start[, end]]) -> int
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
rfind()方法:与find()方法类似,区别是找到返回最右端位置的索引。
>>> help(str.rfind)
Help on method_descriptor:
rfind(...)
S.rfind(sub[, start[, end]]) -> int
Return the highest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
>>> field = 'Hello World'
>>> field.find('o')4
>>> field.rfind('o')7
>>> field.find('o',5) #指定开始索引
7
>>> field.find('a') #未找到则返回-1
-1
>>> words ='Where there is a will,there is a way.'>>>len(words)37
>>>words.find('is')12
>>>words.rfind('is')28
3.2 join()方法
join()方法:用于将序列中的元素以指定字符连接成一个新的字符串。
join()语法:
str.join(seq)
其中,str:指定字符
seq:待连接的元素序列
返回结果:指定字符连接序列中元素后生成的新字符串
>>> dirs = ['','usr','bin','python3']>>> mark = '/'
>>>mark.join(dirs)'/usr/bin/python3'
4.字符串与数字相互转换
4.1 字符串转换数字
int()或float():字符串转换数字,如果转换成功,则返回数字;否则引发异常。
>>> int('9')
9
>>> int('9.6')
Traceback (most recent call last):
File "", line 1, in
int('9.6')
ValueError: invalid literal for int() with base 10: '9.6'
>>> float('9.6')
9.6
默认情况下int()函数都将字符串参数作为十进制数字进行转换,可以指定基数(进制)。
>>> int('a')
Traceback (most recent call last):
File "", line 1, in
int('a')
ValueError: invalid literal for int() with base 10: 'a'
>>> int('a',16)
10
>>> int('ab',16)
171
>>> int('h',16)
Traceback (most recent call last):
File "", line 1, in
int('h',16)
ValueError: invalid literal for int() with base 16: 'h'
4.2 数字转换字符串
数字转换字符串有很多方法,另外Python中字符串提供str()函数。
>>> str(9.6)
'9.6'
>>> str(True)
'True'
>>> str([1,2,3])
'[1, 2, 3]'
str()函数所有类型都可以转换,但缺点是不能格式化。如果格式化字符串可以使用format()函数。
>>> from math importpi>>> '{:.2f}'.format(pi)'3.14'
最后
以上就是孝顺白猫为你收集整理的python中r 4.2f%r_Python基础:数据类型-字符串(7)的全部内容,希望文章能够帮你解决python中r 4.2f%r_Python基础:数据类型-字符串(7)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复