首页 存档 技术 查看内容

光荣之路测试开发之python学习-第27讲:字符串精讲四 一.学习内容 二.字符串函数-切割 ...

2018-3-30 13:00 |来自: 互联网 380 0

摘要: 吴老的《selenium webdriver 实战宝典》出版了! 一.学习内容 * 字符串切割 * 字符串连接 * 测试字符串 * 映射 * 解码编码 * 统计 二.字符串函数-切割 1.split (s,count)-将字符串以s进行切割,count为切割次数, ...

吴老的《selenium webdriver 实战宝典》出版了!

.学习内容

* 字符串切割

* 字符串连接

* 测试字符串

* 映射

* 解码编码

* 统计

二.字符串函数-切割

1.split (s,count)-将字符串以s进行切割,count为切割次数,不写默认全部切割

a.split('am')

a.split('am',1)

a.split('am',2)


2.小练习-输出一个字符串的单词个数

#encoding=utf-8

def count_string(s):

s=s.replace(","," ").replace('!',' ')

b=s.split()

return len(b)

s='I am a boy,and handsome!'

print count_string(s)

代码为:

法二:

len("i am a boy,and handsom!".replace(",","").replace("!","").split())

3.rsplit (s,count)-将字符串从右边以s进行切割,count为切割次数,不写默认全部切割

a='iamymliamlearing'

a.rsplit('am',1)

a.rsplit('am')

4.splitlines ([bool])-按照分隔符分隔字符串bool默认为false

a='1\n2\n'

print a.splitlines()

print a.splitlines(False)

print a.splitlines(True)

print a.splitlines(1)

小练习:输出文件有多少行内容,多少字符

代码为:

#encoding=utf-8

withopen("C:\\Users\\yumeiling\\Desktop\\a.txt") as fp:

content=fp.read()

print u'行数:',len(content.splitlines())#文件有多少行

print u'个数:',len("".join(content.splitlines())) #文件有多少个字母

运行结果:

三.字符串函数-join连接

1.rule.join(list):按rule来连接list 要求list中每项要为字符串

a=['4','s','ds']

''.join(a)

'','.join(a)

' '.join(a)

四.字符串函数-测试字符串

1.startswith(s):判断字符串是否以s开头

a='iamymliamlearing'

a.startswith('i')

a.startswith('b')

2.endswith(s):判断字符串是否以s结尾

a='iamymliamlearing'

a.endswith('b')

a.endswith('g')

3.isalnum ():判断是否为字母或数字,是返回True,否返回False,且至少有一个字符

'abc2'.isalnum()

'abcd'.isalnum()

4.isalpha (s):判断s是否为字母,是返回True,否返回False,且至少有一个字母

'abcd'.isalpha()

'abc3'.isalpha()

5.isdigit ():判断s是否为数字,是返回True,否返回False

'abc2'.isdigit()

'442'.isdigit()

6.isspace ():判断是否为空格,是返回True,否返回False,不可见字符也会返回True

'abc3 '.isspace()

' '.isspace()

''.isspace()

'\r\n\t '.isspace()

7.islower ():判断是否为小写,是返回True,否返回False字符串中有数字不影响结果

'abc'.islower()

'abC'.islower()

8.isupper ():判断是否为大写,是返回True,否返回False字符串中有数字不影响结果

'abC'.isupper()

'ABC'.isupper()

'ABC1234'.isupper()


9.istitle ():判断每个单次的首字母是否为大写,是返回True,否返回False

'I Am Is Yml23'.istitle()

'I Am Is yml23'.istitle()

五.字符串函数-映射

1.translate (rule,[delstr]):将字符串按rule规则进行映射,并且可用删除delstr字符串,默认delstr为空即不删除,先删除后rule

import string

s=string.maketrans('abc','def')

'iamabcgh'.translate(s)

'abcabcabc'.translate(s)


a映射成d,将b映射成e,将c映射成f

import string

rule=string.maketrans('abc','def')

'iamymliamlearingabc'.translate(s,'am') #删除字符串中的所有‘am’字符


2.strstring的区别

str是类型,string是模块,python3以后就没有string了,因为3中都是unicode了。

七.字符串函数-解码和编码

1.encode()编码,decode()解码

str = "this is stringexample....wow!!!";

str = str.encode('base64','strict');

print "Encoded String: " str;

print "Decoded String: " str.decode('base64','strict')

八.字符串函数-统计count

1.count(s):统计字符串中s出现的次数

'abcab'.count('a')

'abcab'.count('ab')

'abcab'.count('abc')


2.统计一下一个英文句子中,出现的字母个数

代码为:

#encoding=utf-8

import string

def count_num(s):

dicts={}

for i in s:

if i in string.ascii_letters:

dicts[i]=s.count(i)

for k,v in dicts.items():

print u'字母%s,出现次数:%s' % (k,v)

s="my name is yml my age is 25"

count_num(s)

运行结果:

法二:

#encoding=utf-8

def count_num(s):

dicts={}

for i in s:

if i.isalpha():

dicts[i]=s.count(i)

return dicts

s="my name is yml my age is 25"

print count_num(s)

运行结果为:


法三:

#encoding=utf-8

import string

def count_letter_occurence(sentence):

letter_count_result={} #存储统计结果

for letter in sentence: #遍历每一个字

if letter in string.letters:#letter.isalpha() 也可以判断

if letter_count_result.has_key(letter):#key在不在字典中

letter_count_result[letter] =1 #在的话就 1

else:

letter_count_result[letter]=1 #第一次出现,则设定为1

return letter_count_result #返回这个字典

sentence=raw_input("please input asentence to counet letter occurence times:")

print count_letter_occurence(sentence)

运行结果为:


安装喜马拉雅app,搜索“光荣之路”可以收听吴老和他的朋友们分享的35小时测试知识语音

光荣之路
软件测试培训



官网:www.gloryroad.cn
微信公众号:gloryroadtrain
性能测试QQ群:415987441
测试招聘QQ群: 203715128
Java2群:569534627
Python群:457561756
咨询V信:mengqiao626
咨询QQ:53617154

光荣之路公开课大讲堂:413908278



声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部