第十讲:字符串

字符串

 

字符串的作用:

  • 输入端:数据驱动自动化,不管是存放在excel或数据库,以字符串形式读取出来,对读取的字符串需要做处理,比如对字符串作切割不同参数的取值
  • 输出端:自动化作断言,需要对字符串的内容做文本校验,如UI自动化或接口自动化,比如接口自动化需要对返回值作校验,对UI自动化的text作校验

 

一、访问获得字符串:通过索引、切片,遍历方式获取

str='hello world'
print (str[0])
print (str[:6]+'wenky')

运行结果:
h
hello wenky
#遍历字符串的每个字符
for i in str:
    print (i)

运行结果:
h
e
l
l
o
 
w
o
r
l
d

 

二、换行和转义字符:

示例:请打印出以下变量的值:

n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''
n ='n= 123'
f='f= 456.789'
s1 ='s1= \'Hello, world\'\''
s2 = 's2= \'Hello, \\\'Adam\\\'\''
s3 = 's3= r\'Hello, \"Bart\"\''
s4 = 's4= r\'\'\'Hello,\n Lisa!\'\'\''
print('\n',n,'\n',f,'\n',s1,'\n',s2,'\n',s3,'\n',s4,'\n')


运行结果:
 n= 123
 f= 456.789
 s1= 'Hello, world''
 s2= 'Hello, \'Adam\''
 s3= r'Hello, "Bart"'
 s4= r'''Hello,
 Lisa!'''

示例2:

print (r"\ \\ ' '' ''' \n \t \r")    #不改变转义符
print ("\
\\ ' \'' ''' \n \t \r")         

运行结果:
\ \\ ' '' ''' \n \t \r
\ ' '' '''

说明:含有 r 是自然或原始字符,不改变转移符 |,字符串是用 单引号 ‘ 或 双引号 “ 表示,如要表示自己,需用 \ 转义符转义

三、字符串运算符

示例:+、* 、 []取值 、[::]切片 、in 操作

b1='abc'
b2='dfg'
print (b1+b2)
print (b1*2)
print (b1[1])
print (b1[::2])  #取奇数字符
print (b2[1::2]) #取偶数字符

运行结果:
abcdfg
abcabc
b
ac
f

四、字符串格式化:

说明:%d表示整数;%s表示字符串 ;%f 表示浮点数,如指定小数点位数,如指定小数点两位数则是 %.2f ;如果字符串里面有“%”,则用%%来表示一个%。

示例:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:

a=72
b=85
r=(b-a)/b*100  #除法计算结果是浮点数
print ('%.1f%%'%r)

运行结果:
15.3%

五、字符串对齐:

%nd:默认右对齐,指定长度n

%-nd:左对齐,指定长度n

#%10d指定长度10,默认右对齐
print ("I am %10d years old."%19)
#%-10d指定长度10,左对齐
print ("I am %-10d years old."%19)

运行结果:
I am         19 years old.
I am 19         years old.

示例2:显示学生的如下的信息:name、sex、age、school ,其中name按照15个字符长度显示,sex 10个字符长度,age 5个字符长度,school15个字符长度,并且都是左对齐,录入不少于5个学生的信息。

print ('%-15s%-10s%-5s%-20s'%('name','sex','age','shcool'))
print ('%-15s%-10s%-5d%-15s'%('aaa','g',12,'school1'))
print ('%-15s%-10s%-5d%-15s'%('bbb','b',32,'school2'))
print ('%-15s%-10s%-5d%-15s'%('ccc','b',12,'school3'))
print ('%-15s%-10s%-5d%-15s'%('ddd','g',32,'school4'))

运行结果:
name           sex       age  shcool             
aaa            g         12   school1       
bbb            b         32   school2       
ccc            b         12   school3       
ddd            g         32   school4       

左对齐函数:S.ljust(width,[fillchar]):输出width字符,S左对齐,不足部分用fillchar补充,默认为空

str='abc'
print (str.ljust(10,'*'))   #不足以*补充
print (str.ljust(3,'*'))    #没空余位置,则没有填充字符
print (str.ljust(10))       #默认以空格填充

运行结果:
abc*******
abc
abc

 右对齐函数:S.rjust(width,[filchar]):输出width字符,S左对齐,不足部分用fillchar补充,默认为空

str='abc'
print (str.rjust(10,'*'))   #不足以*补充
print (str.rjust(3,'*'))    #没空余位置,则没有填充字符
print (str.rjust(10))       #默认以空格填充


运行结果:
*******abc
abc
       abc

 中间对齐函数:S.center(width, [fillchar]) :输出width字符,S中间对齐,不足部分用fillchar补充,默认为空

str='abc'
print (str.center(10,'*'))   #不足以*补充
print (str.center(3,'*'))    #没空余位置,则没有填充字符
print (str.center(10))       #默认以空格填充


运行结果:
***abc****
abc
   abc   

 zfill()右对齐,不够自动以0填充

str='123abc'
print (str.zfill(10))
print (str.rjust(10,'0'))

运行结果:
0000123abc
0000123abc

六、strip()、lstrip()、rstrip():清理不可见字符函数

1、S.strip()函数说明:

可以将字符串的左右空格 \t 等空白内容去除,该函数可以将字符串的左右两边的空格、\t 等空白内容或指定字符串去除,并返回处理后的结果,但原字符串并未被改变。

不带参数的strip()函数,表示把S中前后所有的空白字符全部去掉,包括’\n’ , ‘\t’ , ‘\r’ , ’ ’ 等不可见字符串,可以理解为把S前后空白字符串替换为None;
带参数的strip()函数表示将S前后指定字符串chars去掉。
# 默认清理前后空白字符
s='boy boy boy'
print (s.strip())

# *号不是最后位,所以清理不了
s1='***boy boy boy***\n'
print (s.strip('*'))

# 清理指定字符
s='hello boy boy boy'
print (s.strip('hello '))

运行结果:
boy boy boy
boy boy boy***
boy boy boy

2、lstrip():将字符串的左边空格\t等空白内容去除

# 默认清理左边空白字符
s='boy boy boy'
print (s.lstrip())

# 清理左边指定字符
s='hello boy boy boy'
print (s.strip('hello '))

# *号不是最左边,所以清理不了
s1='\n***boy boy boy***\n'
print (s1.lstrip('*'))

运行结果:
boy boy boy
boy boy boy
 
***boy boy boy***
 

3、rstrip():将字符串的右边空格\t等空白内容去除

# 默认清理左边空白字符
s='boy boy boy'
print (s.rstrip())

# 清理右边指定字符
s1='hello boy boy boy'
print (s1.rstrip('boy'))

# *号不是最右边,所以清理不了
s2='\n***boy boy boy***\n'
print (s2.rstrip('*'))


运行结果:
boy boy boy
hello boy boy
***boy boy boy***

七、字符串的大小写互换:ascii码值互换,char()

#大写转换小写:lower()
>>> str='ABC'
>>> print str.lower()
abc


#小写转换大写:upper()
>>> str='abc'
>>> print str.upper()
ABC


#大小写互换:swapcase()
>>> str1='asBDs'
>>> print str1.swapcase()
ASbdS


#首字母转换为大写:capitalize()
>>> s2='i love python'
>>> print s2.capitalize()
I love python


#每个字母的首字母大写:capwords()-是string模块的方法,效果同title()

>>> import string
>>> s4='study python'
>>> print string.capwords(s4)
Study Python
>>> print s4.title()
Study Python

猜你喜欢

转载自www.cnblogs.com/wenxiacui/p/10965203.html