python自动化测试-D3-学习笔记之二(字符串方法)

在python中,可变变量 : list 和 字典,不可变变量:元组、字符串

li = [1,1,2,3,4,5,6,7,8,9]
# li2 = li[:] #深拷贝 不同的内存地址
li2 = li #浅拷贝 相同的内存
print('这里li的内存地址',id(li))
print('这里是li2的内存地址',id(li2))

for i in li2: #深拷贝循环的结果是[2, 4, 6, 8],浅拷贝循环的结果是:[1, 2, 4, 6, 8]
if i%2!=0:
li.remove(i)
print(li)
#在循环list的时候不能删东西
#字符串这些方法都不会改变原来字符串的值

name = 'besttest'
# new_name = name.strip() #默认是去掉两边的空格和换行符
# new_name= name.lstrip() #默认是去掉左边的空格和换行符
# new_name= name.rstrip()#默认是去掉右边边的空格和换行符
# new_name = name.count('t')#查找某个字符串在字符串里面出现的次数
# index = name.find('d')#找到这个字符串,返回它的下标,如果不存在的话,返回-1
# index = name.index('d')#找到这个字符串,返回它的下标,如果不存在的话,报错
# print(name.upper())#把所有字母都变成大写的
# print(name.lower())#把所有字母都变成小写的
file_name = 'a.xls'
# print(file_name.endswith('.xls'))#判断一个字符串是否以xx结尾
sql = 'select * from user; select'
sql.startswith('select')#判断一个字符串是否以xx开头
# f = '{name} 欢迎光临 age :{age} '
# print(f.format(name='原宝青'))#字符串格式化

# d = {'name':'yuanbaoqiang','age':18}
# print(f.format_map(d))#字符串格式化,它传进去的是一个字典
new_sql = sql.replace('select','update')#字符串替换,第一个old,new
# print(new_sql)

# print('122s'.isdigit())#是否是数字
# print('&'.isalnum()) # 是否包含数字或字母
# st = 'a b c d f g'
# st_list = st.split()#如果什么都不写的话,是按照空格分割
# print(st_list)

new_name = name.capitalize()#首字母大写
name.center(50,'*') #把字符串放中间,两边用*补齐
# print('aaAA'.islower()) # 是否是小写字母
# print('AAaa'.isupper()) # 是否是大写字母
# print('sdfsdf'.isalpha()) # 是否是英文字母

slit = ['a', 'b', 'c', 'd', 'f', 'g']
s2='hhhhhhhhhh'
tu = (1,2,3,4,5)
d={'name':'nnn','age':18,'sex':1}
res = '*'.join(d)
print(res) 结果是:sex*name*age
res = '*'.join(s2)
print(res) 结果是:h*h*h*h*h*h*h*h*h*h a*b*c*d*f*g

res = '*'.join(slit)
print(res) 结果是:a*b*c*d*f*gres = '*'.join(tu)
print(res)  结果是: 报错

1、字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾

例如:

str = '0123456789′
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
print str[:-5:-3] #逆序截取

2、替换字符串replace(), 变量.replace("被替换的内容","替换后的内容"[,次数]),替换次数可以为空,即表示替换所有。要注意的是使用replace替换字符串后仅为临时变量,需重新赋值才能保存

例如:

str = 'akakak'
str = str.replace('k',' 8') # 将字符串里的k全部替换为8

print(str)
>> 'a8a8a8'  # 输出结果

3、字符串分割:变量.split("分割标示符号"[分割次数]),分割次数表示分割最大次数,为空则分割所有,返回结果为list

例如:

src='niuhanyang,12345'
new_src=src.split(',')
print(new_src)
print(new_src[0])
print('1+2+3 1+2+3+4'.splitlines())#换行符分割,返回一个list

4,拼接字符串join(),将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

语法:  'sep'.join(seq)

参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

 例如:

print('+'.join(('hehe','haha','ee')))#以+拼接字符串
print(''.join(('hehe','haha','ee')))#拼接字符串

 5,去掉指定字符lstrip(),rstrip(),strip(),生成一个新的字符串,参数为空时,默认为去掉空格和换行

例如:参数为空情况

print('lstrip:','        mysql 
'.lstrip())#默认去掉左边的空格和换行
print('rstrip:',' mysql '.rstrip())#默认去掉右边的空格和换行
print('strip:',' mysql '.strip())#默认去掉两边边的空格和换行

 6,查找find()、rfind(),ps:find()与index()功能相同,只是find找不到是返回-1,而index会直接报错,影响程序执行

  语法:
  str.find(str, beg=0 end=len(string))
    str -- 此选项指定要搜索的字符串。

beg -- 这是开始索引,默认情况下为 0。

end -- 这是结束索引,默认情况下它等于字符串的长度
例如:

str1 = "this is oo is string example"
str2 = "exam"
print(str1.find(str2))
print(str1.find(str2, 10))
print(str1.find(str2, 40))
print(str1.rfind('is'))#返回从右边开始计算字符的下标,例如is从左边开始下标是5,右边是11

字符串和字符串操作
上面说了存数字,那要是想存自己的名字呢,那用int类型的就不行了,不能一个人的名字叫数字吧,这样怎么办呢,就有另一种数据类型应运而生,就是字符串,它可以存任意类型的字符串,比如名字,一句话等等。

字符串还有很多内置的方法,对字符串进行操作,常用的方法如下,下面注释带有是否的,返回的都是一个布尔值:


原文地址:https://www.cnblogs.com/blackbird0423/p/8204555.html