Python3-2020-测试开发-1- 字符串操作

一、数字

#例如
age = 18

二、字符串

#字符串
a = 'aaa'
b = "bbb"

2.1字符串常用的功能

  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片

2.1.1  capitalize 将字符串的第一个字符转换为大写

''
大小写转换
'''
print("---------------大小写转换-----------------")
m = "my name is ZHONG guo ren"

print(m.capitalize()) # 产生新的字符串,首字母大写
print(m.title()) # 产生新的字符串,首字母大写
print(m.upper()) # 产生新的字符串,所有字母大写
print(m.lower()) # 产生新的字符串,所有字母小写
print(m.swapcase()) # 产生新的字符串,所有字母大小写转换


"""
---------------大小写转换-----------------
My name is zhong guo ren
My Name Is Zhong Guo Ren
MY NAME IS ZHONG GUO REN
my name is zhong guo ren
MY NAME IS zhong GUO REN
"""
capitalize/title/upper/lower/swapcase

2.1.2 center(width, fillchar)-居中显示

'''
格式排版
'''
print("--------------格式排版----------------")
n = "CHU"

print(n.center(10))
print(n.center(10,"*"))
print(n.rjust(10,"#"))
print(n.ljust(10,"#"))

'''
--------------格式排版----------------
   CHU    
***CHU****
#######CHU
CHU#######
'''
center/rjust/ljust

2.1.3 count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

    '''
    count(str, beg= 0,end=len(string)) - 子序列个数  
    返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
    '''
    print("hello world".count("l"))
    print("hello world".count("a"))
#---------------------------------------------
3
0
count

2.1.4 startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查

    '''
    startswith(substr, beg=0,end=len(string))
    检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
    '''
    print("hello world".startswith("h"))
    # True
    print("hello world".startswith("a"))
    # False
    print("hello world".startswith("h",1,5))
    # False

#-------------------------------------------------------------------
True
False
False
startswith

 2.1.5 str() 其他类型转化为字符串类型

'''
其他类型转化为字符串类型
'''
print("------------------其他类型转化为字符串类型--------------------")
print(str(5.20))
print(str(555))
print(str(3.14e2))
print(str(True))
str()

2.1.6 replace()  实现字符串的替换

'''
replace()实现字符串的替换
'''
print("------------------replace()实现字符串的替换--------------------")

a = 'abc'

# a[3] = 'g'
# print(a)'str' object does not support item assignment


# 生成一个新的字符串
print(a.replace('c','h'))
# 原字符串不变
print(a)
replace()

2.1.7 切片

'''
slice字符串切片操作
'''
print("------------------slice字符串切片操作--------------------")
b = 'womenshizhongguoren'

print(b[2])
print(b[1:5])
print(b[1:7:2]) # 从1开始取值,步长为2
print(b[:]) # 整个字符串
print(b[2:])
print(b[:3])

# 其他操作
print(b[-3])# 倒数三个
print(b[-6:-1])
# 倒序输出
print(b[::-1])

# 输出:

"""
------------------slice字符串切片操作--------------------
m
omen
oes
womenshizhongguoren
menshizhongguoren
wom
ru
r
guore
nerouggnohzihsnemow
"""
切片

2.1.8 split()分割和join()合并

'''
split()分割和join()合并
split()蒋指定字符串分割成多个子字符串,如果不指定分隔符,默认为空格,字符串切成列表输出
join()合并和split()正好相反,连接字符串,列表拼接成字符串
join比+号性能高,+会生成新的对象
'''
print("---------------------split()分割-------------------------")
c = "wo ai zhong guo ai h a "
print(c.split())
print(c.split("ai"))

# 输出:

"""
['wo', 'ai', 'zhong', 'guo', 'ai', 'h', 'a']
['wo ', ' zhong guo ', ' h a ']
"""

print("---------------------join()分割-------------------------")
d = ['as','as10','as20','as30']
print("*".join(d))
print("".join(d))

"""
---------------------split()分割-------------------------
['wo', 'ai', 'zhong', 'guo', 'ai', 'h', 'a']
['wo ', ' zhong guo ', ' h a ']
---------------------join()分割-------------------------
as*as10*as20*as30
asas10as20as30
"""
split()分割和join()合并

2.1.9 strip/lstrip/rstrip去除首尾信息

'''
去除首尾信息
'''
print("-----------------去除首尾信息--------------------")
print("    s i x     ".strip())
print("*s*i*t***".strip("*")) # 去掉指定的首尾符号
print("*s*i*t***".lstrip("*")) # 去掉左边的*
print("*s*i*t***".rstrip("*")) # 去掉右边的*

"""
-----------------去除首尾信息--------------------
s i x
s*i*t
s*i*t***
*s*i*t
"""
strip/lstrip/rstrip

2.1.10 find查找字符串

a = '''我如果爱你——
绝不像攀援的凌霄花,
借你的高枝炫耀自己;
我如果爱你——
绝不学痴情的鸟儿,
为绿荫重复单调的歌曲;
也不止像泉源,
常年送来清凉的慰藉;
也不止像险峰,
增加你的高度,衬托你的威仪。
甚至日光,
甚至春雨。
不,这些都还不够!
我必须是你近旁的一株木棉,
作为树的形象和你站在一起。
根,紧握在地下;
叶,相触在云里。
每一阵风过,
我们都互相致意,
但没有人,
听懂我们的言语。
你有你的铜枝铁干,
像刀,像剑,也像戟;
我有我红硕的花朵,
像沉重的叹息,
又像英勇的火炬。
我们分担寒潮、风雷、霹雳;
我们共享雾霭、流岚、虹霓。
仿佛永远分离,
却又终身相依。
这才是伟大的爱情,
坚贞就在这里:
爱——
不仅爱你伟岸的身躯,
也爱你坚持的位置,
足下的土地'''



'''
查找方法
'''

print(len(a))
print(a.startswith("我如果爱你"))
print(a.endswith("足下的土地"))
print(a.find("凌霄花")) # 第一次出现的字符串的位置
print(a.rfind("")) # 最后一次出现指定字符串的位置
print(a.count("")) # 出现的次数
print(a.isalnum()) # 所有字符全是字母或者数字
print("aaa".isalnum())


'''
341
True
True
14
327
6
False
True
'''
len/find/startswith/endswith/rfind/count/isalnum

2.1.11 字符串其他方法

'''
其他方法
'''
print("aaa100".isalnum()) # 是否为字母或数字
print("我是chu".isalpha()) # 检测字符串是否只由字母组成(含汉字)
print("12346".isdigit()) # 检测字符串只有数字组成
print("\t\n".isspace()) # 检测字符串是否为空白符
print("ABC".isupper()) # 检测字符串是否为大写字母
print("abc".islower()) # 检测字符串是否为小写字母


'''
True
True
True
True
'''

 

 

 

 

 

2.2 + 和 join的性能(join比+号性能高,+会生成新的对象)

代码如下:

import time

t1 = time.time()  # 起始时刻

a = ""

# for i in range(10000000):
#
#     a += 'chu'

t2 = time.time() # 终止时刻
print(a)
print("运算时间:"+str(t2-t1))


t3 = time.time()   # 起始时间
li = []
# for i in range(1000000):
#     li.append('chu')

a = "".join(li)
t4 = time.time()   # 终止时间
print(a)
print("运算时间:"+str(t4-t3))


"""
运算时间:2.4145967960357666
运算时间:0.10860204696655273
"""
+ 和 join

2.3 python的驻留机制

'''
python字符串的驻留机制:对于符合标识符规则的字符串(仅包含下划线 (_/字母和数字))会启用字符串驻留机制
'''

x = 'acb_111'
y = 'acb_111'

print(x is y)

m = '-dd#'
n = '-dd#'
print(id(m))
print(id(n))
print(m is n)
驻留机制

2.4 成员操作符

'''
成员操作符:in / not in 
'''
print("b" in x)
print("b" not in x)
in/not in

 

posted @ 2020-02-10 12:02  旅行没有终点  阅读(183)  评论(0编辑  收藏  举报