python自动化测试

python自动化测试 第 2 章.基本数据类型(字符串)

2021-10-18  本文已影响0人  失忆的蝴蝶

字符串定义

使用一个单引号、双引号、三引号或三个单引号、三个双引号包裹起来的字符的序列。
如:

a = 'a'
b = "bc"
c = """hello world"""
d = '''hello world'''
e ="""窗前明月光,
疑是地上霜
"""
print('a的类型为:',type(a))
print('b的类型为:',type(b))
print('c的类型为:',type(c))
print('d的类型为:',type(d))
print('e的类型为:',type(e))

特别地,引号中的不写任何内容即为空字符串,如:a = ''
单三引号和双三引号一般作为注释使用

字符串索引

索引是元素在序列中的位置,也叫下标


image.png

语法
···
str = ‘abcdef’
str[0]和str[-6]都是第一个字符a
str[-1]和str[5]都是最后一个字符f
···

字符串切片

语法
str[star:end:step]

s = '0123456789'
s[::-1]  -->输出9876543210
s[1::2]  -->输出13579
s[1:3:-1]  -->step为负数,表示从右往左切,但是end在star的右边,所以无法切到内容,输出空

字符串拼接

+号拼接

a = 'hello'
b = ','
c = 'world!'
print(a ,b, c)   #输出hello , world!,每个字符之间有空格
print(a +b +c) #输出hello,world!

*号拼接

s1 = '*'
print('*' * 100)  #输出100个*

字符串常用方法

strip

strip([chars])返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串。如果省略或为 None,则 chars 参数默认移除空白符。 实际上 chars 参数并非指定单个前缀或后缀;而是会移除参数值的所有组合:

移除字符前后的空格,中间的空格无法移除

s = '  天空 之城  '
res = s.strip()
print(res) # 输出‘天空 之城’
res = 'www.example.com'.strip('cmow.')
print(res) # 输出example

split

split(sep=None, maxsplit=-1)
返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串。 如果给出了 maxsplit,则最多进行 maxsplit次拆分(因此,列表最多会有 maxsplit+1 个元素)。如果 maxsplit 未指定或为 -1,则不限制拆分次数(进行所有可能的拆分)。
例子:

res = '刘德华-56-著名歌手'.split('-')
print(res) # 输出一个列表  ['刘德华', '56', '著名歌手']

str.join(iterable)

返回一个由 iterable 中的字符串拼接而成的字符串。 如果 iterable 中存在任何非字符串值包括 bytes 对象则会引发 TypeError。 调用该方法的字符串将作为元素之间的分隔。
将序列中的元素以指定的字符连接生成一个新的字符串。

a=','.join(['刘德华', '56', '著名歌手'])
print(a,type(a)) # 输出刘德华,56,著名歌手 <class 'str'>

replace

replace(old, new[, count])返回字符串的副本,其中出现的所有子字符串 old 都将被替换为 new。如果给出了可选参数 count,则只替换前 count 次出现。

'888-888-888'.replace('-', '')  #把-替换成空字符,即输出‘888888888’

其他方法参考官方文档:https://docs.python.org/zh-cn/3.8/library/stdtypes.html#string-methods

字符串与数值转换

# 整数和整数字符串的相互转化
int_str = '1'
res = int(int_str)
print(type(res))
# 浮点数和浮点数字符串的相互转化
f_str = '1.2'
res = float(f_str)        # 把字符串转换成浮点数
print(type(res))
print(type(str(res)), str(res))   # 把浮点数转换成字符串
# 整数字符串能转化成浮点数
int_str = '1'
res = float(int_str)
print(type(res))
不是整数字符串的都不能转换成整数
float_str = '1.0'
res = int(float_str)  # 会报错
print(type(res))

转义字符

在需要在字符串中表示特殊字符时,可以使用反斜杠\转义字符
记忆:人字,撇是正斜杠,捺是反斜杠

(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\n 换行
\t 横向制表符
\r 回车
\f 换页
print('\\\\')  # 输出\\
print('\\')   # 输出\\
print('\\\')  # 会报错
print('\'')   # 输出单引号
print(r'床前明月光,\n疑是地上霜')  # raw 原始 原本,原样 # 输出:  床前明月光,\n疑是地上霜

字符串格式化

python支持两种形式的字符串格式化

1、百分号%字符串格式化方式

%字符串格式化

模板字符串语法格式如下:

%[(name)][flags][width][.precision]typecode

用法:模板字符串 % (槽位)

format_str1 = '%s计算机的内存利用率为%.3f%%'
time_str = '11:15'
percent = 0.7588
res = format_str1 % (time_str, percent*100)
print(res)
num = 10
'%s,%d,%.2e,%o' % (num, num, num, num)

key的用法:

'%(num)s,%(num)d,%(num1).2e,%(num)o' % {"num":10,"num1": 20}

2、formate字符串格式化方式

基本语法是:

<模板字符串>.format(<逗号分隔的参数>)

在模板字符串中使用{}代替以前的%作为槽位

{}中除了可以写参数索引外,还可以填写控制信息来实现更多的格式化功能,语法如下

{<参数序号>:<格式控制标记>}
其中格式控制标记格式如下
[fill][align][sign][#][0][width][,][.precision][type]
'{}计算机的内存利用率为{:.2%}'.format('11:15', 0.7588)
'%(num)s,%(num)d,%(num1).2e,%(num)o' % {"num":10,"num1": 20}
'{0},{0:d},{0:.2e},{0:o}'.format(20)
上一篇下一篇

猜你喜欢

热点阅读