当前位置 : 主页 > 网络安全 > 测试自动化 >

第十讲:字符串

来源:互联网 收集:自由互联 发布时间:2021-06-19
字符串 字符串的作用: 输入端:数据驱动自动化,不管是存放在excel或数据库,以字符串形式读取出来,对读取的字符串需要做处理,比如对字符串作切割不同参数的取值 输出端:自

字符串

 

字符串的作用:

  • 输入端:数据驱动自动化,不管是存放在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

 

八、字符串的搜索

网友评论