Python基础----字符串

在这里插入图片描述

a = dir(str)
print ('str常用的方法:')
for i in a:
    if i[0] != '_':
        print (i)
str常用的方法:
capitalize
casefold
center
count
encode
endswith
expandtabs
find
format
format_map
index
isalnum
isalpha
isdecimal
isdigit
isidentifier
islower
isnumeric
isprintable
isspace
istitle
isupper
join
ljust
lower
lstrip
maketrans
partition
replace
rfind
rindex
rjust
rpartition
rsplit
rstrip
split
splitlines
startswith
strip
swapcase
title
translate
upper
zfill

字符串是python中使用频率相当高的数据类型,其方法也非常多,将选择一些常用的方法进行总结。

upper全大写、lower全小写
capitalize第一个字母大写、title标题格式,每一个单词第一个字母都大写
zfill按指定长度填充字符串,不够在字符串前面填0
split,在指定字符位置分割字符串

string.splitlines([keepends]),按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,
如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

strip,删除字符串首尾指定字符,也可以使用lstrip、rstrip
replace,替换字符串中的字符
swapcase,大小写转换
a = 'hello hayden'
b = a.upper()
print (b)
c = b.title()
print (c)
cc = b.capitalize()
print (cc)
d = c.zfill(15)
print (type(d))
print (d)
e = d.strip('0')
print (e)
f = e.split('y')
print (f)
print (type(f))
g = 'Haydem'
h = g.replace('m','n')
print (h)
i = h.swapcase()
print (i)
HELLO HAYDEN
Hello Hayden
Hello hayden
<class 'str'>
000Hello Hayden
Hello Hayden
['Hello Ha', 'den']
<class 'list'>
Hayden
hAYDEN

字符串格式化:普通格式化和format

普通格式化,基本形式:%[(name)][flags][width][.precision]typecode

(name)         可选,用于选择指定的key(字典没有顺序的说法)
flags          可选,可供选择的值有: + - 空格 0
width          可选,占有宽度
.precision     可选,小数点后保留的位数(整型d可是没有小数的说法)
typecode       必选!

(name)可选,用于选择指定的key,输出字典中指定的key对应的值,字典中没有顺序,只有键值对对应即可

info = {
    'name':'Hayden',
    'sex':'male',
    'age':29
}
print ('%(name)s is %(sex)s of %(age)d years old'%info )
Hayden is male of 29 years old

flags可选,可供选择的值有:(通常与width结合)

+       右对齐;正数前加正号,负数前加负号;

-        左对齐;正数前无符号,负数前加负号;

空格    右对齐;正数前加空格,负数前加负号;

0        右对齐;正数前无符号,负数前加负号;用0填充空白处

width可选,占有宽度

.precision 可选,小数点后保留的位数

a = 123.45
b = 12
print ('% 6f'%a)
print ('%+6f'%a)
print ('%+.6f'%a)
print ('%06f'%a)
print ('%-6f'%b)
print ('%+6f'%b)
print ('%+.6f'%b)
print ('%06f'%b)
 123.450000
+123.450000
+123.450000
123.450000
12.000000
+12.000000
+12.000000
12.000000

typecode必选,表示获取对应类型的值并格式化到指定位置

s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置

r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置

c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置

o,将整数转换成八进制表示,并将其格式化到指定位置

x,将整数转换成十六进制表示,并将其格式化到指定位置

d,将整数、浮点数转换成十进制表示,并将其格式化到指定位置

e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

F,同上

g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)

%,当字符串中存在格式化标志时,需要用 %%表示一个百分号

用的最多应当是字符型‘s',整型'd',浮点数'f'

格式化字符串的函数 str.format()

基本形式: [[fill]align][#][sign][width][,][.precision][type]

fill         【可选】空白处填充的字符,: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充

align        【可选】对齐方式(需配合width使用),   ^, <, >分别是居中、左对齐、右对齐,后面带宽度

[#]          【可选】对于二进制、八进制、十六进制,如果加上[#],会显示 0b/0o/0x,否则不显示

sign         【可选】有无符号数字【同方法一的flags,仅+-0三种取值】

,           【可选】为数字添加千位分隔符,如:1,000,000

width        【可选】格式化位所占宽度

.precision   【可选】小数位保留精度

type         【可选】格式化类型,类似方法一,不重复叙述

format方法中不一定要将所有值重复列,有重复的可以用类似字典键值对的形式存放

print ('{:a>8}'.format('189'))
print ('{:b<6}'.format('189'))
print ('{:b<10}'.format('189'))
print ( "{:4.1f}".format(189))
print ('{:,d}'.format(18900))
print ( "{:x}".format(189))
print ( "{:>8x}".format(189))
print ( "{:<8x}".format(189))
print ( "{:^#x}".format(189))
print ('{num:d},{num:x}'.format(num=10))
aaaaa189
189bbb
189bbbbbbb
189.0
18,900
bd
      bd
bd      
0xbd
10,a

猜你喜欢

转载自blog.csdn.net/weixin_42432468/article/details/88608164