字符串(String)的介绍
字符串表示:两个引号中间的数据,字符串是有序的,不可变的数据类型。
可以是单引号和双引号或者三个引号,python中引号使用完全相同。
username = """谨言"""
username = "谨言"
username = '谨言'
说明:
(a)如果字符串中含有单引号,该字符串需要使用双引号括起来
(b)如果字符串中含有双引号,该字符串需要使用单引号括起来
使用三引号('''或""")可以指定一个多行字符串
例如:
name = """jin
yan
zhang
"""
print(name)
以上实例输出结果:
jin
yan
zhang
什么时候三引号表示注释?什么时候三引号表示换行呢?下面谨言为大家总结了一下
如果三引号表示换行的话 前面需要有变量,
如果三引号表示注释的话 前面是什么都没有的,
python中有多种数据类型,那么如何能知道我的数据类型是什么呢?
name = "谨言"
print(type(5))
print(type([1,2,3]))
print(type(name))
以上实例输出结果:
<class 'int'>
<class 'list'>
<class 'str'>
字符串的索引:
索引 index, 目录, 通过一定的顺序更快捷的找到字符串当中的某个字符。
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
例如:
name = "jinyan zhenshige hao guniang"
#输出字符串第一个字符
print(name[0])
#输出倒数第一个字符
print(name[-1])
以上实例输出结果:
j
g
字符串的切片:
想获取多个字符的时候,你有把刀,去切这个字符串
字符串[start:end:步长],顾头不顾腚, 骨头不顾尾
name = "jinyan zhenshige hao guniang"
#从第一个开始到最后
print(name[0:])
#相当于复制,也就是打印全部
print(name[:])
#倒叙
print(name[::-1])
#输出从第二个开始到第五个且每隔两个的字符
print(name[1:5:2])
以上实例输出结果:
jinyan zhenshige hao guniang
jinyan zhenshige hao guniang
gnainug oah egihsnehz naynij
iy
注意:
python是非常灵活的,如果没有写步长,那么步长默认为1
如果切片超出范围,也不会报错,那么就是到字符串的最后
例如:
name = "jinyan zhenshige hao guniang"
print(name[0:10000])
执行以上程序会输出如下结果:
jinyan zhenshige hao guniang
取不到数据的情况
name = "jinyan zhenshige hao guniang"
print(name[-1:5])
上面取不到数据是因为:-1:5 是从右往左,但是步长为1(指定应该从左往右),二者不一致,所以取不到数据
总结
心法:
- 第一步:end - start 1
- 第二步:step 1
end 是在start的右边,step 必须是正数
end 是在start的左边,step 必须是负数
字符串的常见处理函数
变量.函数名(字符串的变量.字符串的操作)
(1)获取字符串长度 --- len()
例如:
name = "jinyan shi ge hao gu niang"
# new_name = len(name)
# print(new_name)
print(len(name))
执行以上程序会输出如下结果:
26
(2)查找一个字符串在,另外一个字符串中首次出现的位置,如果不存在,则返回-1 --- find(str,start,end)
说明:
str:表示要查找的字符串
start:表示查找的开始位置
end:表示查找的结束位置
索引从0开始计算
例如:
name = "jinyan shi ge hao gu niang"
# new_name = name.find("i")
# print(new_name)
print(name.find("i"))
print(name.find("99"))
执行以上程序会输出如下结果:
1 # i首次出现的位置是1
-1 # 字符串中没有99 所以返回-1
(3)查找并返回一个字符串在,另外一个字符串中,出现的次数,如果不存在返回0 --- count()
例如:
name = "jinyan shi ge hao gu niang"
# new_name = name.count("i")
# print(new_name)
print(name.count("i"))
执行以上程序会输出如下结果:
3
(4)指定某个字符为分割符,从字符串左端开始,将其分隔成多个字符串,并返回分隔结果的列表 --- split()
例如:
name = "jin yan shi ge hao gu niang"
# new_name = name.count("i")
# print(new_name)
print(name.split(" "))
执行以上程序会输出如下结果:
['jin', 'yan', 'shi', 'ge', 'hao', 'gu', 'niang']
(5)将字符串更加优雅的拼接在一起--- join()
例如:
name1 = "jinyan"
name2 = "shi ge"
name3 = "hao gu niang"
print("".join( ["jinyan","shi ge","hao gu niang"]))
执行以上程序会输出如下结果:
jinyanshi gehao gu niang
(6)将字符串转换为小/大写显示----- lower()、upper()
例如:
name = "jinyan shi ge hao gu niang"
print(name.lower()) #小写
print(name.upper()) #大写
执行以上程序会输出如下结果:
jinyan shi ge hao gu niang
JINYAN SHI GE HAO GU NIANG
(7)将字符串转换为标题显示----- lower()、upper()
例如:
name = "jinyan shi ge hao gu niang"
print(name.title()) #首字母大写
执行以上程序会输出如下结果:
Jinyan Shi Ge Hao Gu Niang
(8)按照指定的次数,替换字符串中指定的字符串 --- replace()
例如:
name = "jinyan shi ge hao gu niang"
print(name.replace("jinyan","kaixin")) #默认替换一次
print(name.replace("i","o",2)) #替换两次
执行以上程序会输出如下结果:
kaixin shi ge hao gu niang
jonyan sho ge hao gu niang
说明: replace(old,new,count)
old:表示被替换的原字符串
new:表示要替换的新字符串
count:表示替换的次数,可以省略
(9)删除字符串两端、右端、左端的连续空格---strip()、rstrip()、lstrip()
例如:
name = " jinyan shi ge hao gu niang "
print(name.strip())
print(name.rstrip())
print(name.lstrip())
执行以上程序会输出如下结果:
jinyan shi ge hao gu niang
jinyan shi ge hao gu niang
jinyan shi ge hao gu niang
(10)验证一个字符串是否在另一个字符串中---in
例如:
name1 = "jinyan shi ge hao gu niang"
name2 = "jinyan"
print(name2 in name1)
执行以上程序会输出如下结果:
True
(11)字符串的格式化---format或%
format
占位用{}表示
例如:
name = "龙衫集团"
money = 100000000
money_chinese = "一千万"
ticket = """
今收到 {}
交来的 {}
人名币 {}
""".format(name, money, money_chinese)
print(ticket)
执行以上程序会输出如下结果:
今收到 龙衫集团
交来的 100000000
人名币 一千万
例如:
(a)使用print函数,输出"欢迎使用加法计算器"
(b)获取键盘输入的数值,赋值给变量num1
(c)获取键盘输入的数值,赋值给变量num2
(d)输出num1+num2、num1-num2、num1*num2、num1/num2 的结果,使用格式化字符形式输出
print("欢迎使用加法计算器")
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
a = num1+num2
b = num1-num2
c = num1*num2
d = num1/num2
res = """
num1+num2={}
num1-num2={}
num1*num2={}
num1/num2={}
""".format(a,b,c,d)
print(res)
执行以上程序会输出如下结果:
欢迎使用加法计算器
请输入第一个数:10
请输入第二个数:20
num1+num2=30
num1-num2=-10
num1*num2=200
num1/num2=0.5
字符串中以%开头的字符,可以在程序中改变字符串中的内容
%d | 十进制整数 |
%c | 单个字符 |
%s | 字符串 |
%f | 浮点数 |
%e | 指数形式 |
%% | 字符% |
%o | 八进制整数 |
%x | 十六进制整数 |
例如:
# 十进制整数(%d)
a = 10
b = 20
c = a + b
print("a+b=%d" %c)
# 单个字符(%c)
sex='男'
print("您的性别是:%c" %sex)
# 字符串(%s)
name = input('请输入您的姓名:')
print("输入的姓名是:%s" %name)
sex = input('请输入您的性别:')
print('输入的性别是:%s' %sex)
print('姓名是:%s,性别是:%s' %(name,sex))
# 浮点数(%f)
a = 12.345
b = 45.56
c = a + b
print("%f+%f=%f" %(a,b,c))
# 指数形式(%e)
a = 2
b = 9
print("a=%d,b=%d,a^b=%e" %(a,b,a**b))
# 输出字符%(%%)
a=85
print("a=%d" %a)
print("a=%d%%" %a)
# 八进制整数(%o)
a = 32
print("a=%o" %a)
# 十六进制整数(%x)
a = 32
print("a=%x" %a)
(12)验证字符串是否全部都是字母、是否全部都是数字---isalpha()、isdigit()
name1= "jinyan shi ge hao gu niang 1 ya 1 ya you"
print(name1.isalpha()) #字母
name2= "123456789"
print(name2.isdigit()) #数字
执行以上程序会输出如下结果:
False
True
以上就是关于字符串操作的全部内容,对于小白来讲,了解的太多,容易陷入误区,所以这些操作基本上就已经可以满足我们做自动化测试了,接下来就是关于python中另一重要的操作--列表的分享了,大家持续关注哦~