1、str(字符串):python3中凡是引号括起来的都是字符串(包括单引号'字符串内容',双引号"字符串内容")
2、字符串的索引和切片
(1)索引
s = 'sdflajdf1212'
print(s[0]) #截取字符串s的第一个元素s
print(s[-1]) #截取字符串s的最后一个元素2
print(s[3]) #截取字符串s的第四个元素l
(2)切片
s = 'aslfja121lj'
print(s[0:3]) #截取字符串s的元素asl
print(s[:]) #截取字符串s的所有元素
#s[首:尾:步长]
print(s[-1::-1]) #倒着截取字符串s的元素jl121ajflsa 切片取字符串,反向,步长为1
print(s[-1:3:-1]) #倒着截取字符串s的元素jl121aj 切片取字符串,反向,步长为1
print(s[-1:3:-2]) #倒着截取字符串s的元素j11j 切片取字符串,反向,步长为2
print(s[::-1]) # 切片取字符串所有元素,反向,步长为2
3、字符串的操作方法
(1)方法:capitalize() #字符串中第一个是字母大写,其余的字母小写
s = 'aslfj a121lj'
print(s.capitalize()) # Aslfj a121lj
(2)方法:upper() 字符串全部大写;lower() 字符串全部小写;title() 字符串每个单词的首字母大写
s = 'aslfj a121lj'
print(s.title()) #Aslfj A121Lj
print(s.upper()) #ASLFJ A121LJ
print(s.lower()) #aslfj a121lj
应用场景例子:验证码不区分大小写
while 1:
you_input = input('请输入验证码:')
if you_input.lower() == 'acd2':
print('验证码输入正确')
break
else:
print('验证码输入错误,请重新输入')
(3)方法:swapcase() 大小写反转
s = 'Aslfj a121lj'
print(s.swapcase()) #aSLFJ A121LJ
(4)方法:center(int,'填充内容') #居中空白填充,int是填充宽度
s = 'aasdSDS adsds'
s6 = s.center(30,"T")
print(s6) #TTTTTTTTaasdSDS adsdsTTTTTTTTT
(5)公共方法:(包括列表、元组和字典),查看字符串的长度
i = "asdljf ssdlfj"
j = len(i)
print(j) # 13
(6)方法:startswitch() 用于检查字符串是否以指定字符串开头,如果是则返回True,否则返回False;如果指定start和end指定值,则指定范围内检查。
格式:S.startswith(prefix[,start=0[,end=len(S)]])
S - - 父字符串。
prefix - - 指定前缀,该参数可以是一个字符串或者是一个元素。
start - - 可选参数,字符串中的开始位置索引,默认为0。(可单独指定)
end - - 可选参数,字符中结束位置索引,默认为字符串的长度。(不能单独指定)
S = "this is string example....wow!!!"
print (S.startswith( 'this' )) #True
print (S.startswith( 'string', 8 )) #True
print (S.startswith( 'this', 0,len(S) )) #True
(7)find和index
find 通过元素找索引,找不到返回-1,所以用find
index通过元素找索引,找不到报错
S = " this is string example....wow!!! "
print(S.find(','))
print(S.index(','))
#E:\python\python.exe E:/wj/python_practice/复习1.py
# -1
# Traceback (most recent call last):
# File "E:/wj/python_practice/复习1.py", line 432, in <module>
# print(S.index(','))
# ValueError: substring not found
(8)strip:默认删除字符串两端的空格;lstrip:删除字符串左边的空格;rstrip:删除字符串右边的空格。
S = " this is string example....wow!!! "
print(S.strip())
#this is string example....wow!!!
(9)count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置
格式:str.count(sub, start= 0,end=len(string))
sub - - 搜索的子字符串
start - - 字符串开始搜索的位置。默认为第一个字符, 第一个字符索引值为0。
end - - 字符串中结束搜索的位置。字符中第一个字符的索引为0。默认为字符串的最后一个位置。
S = " this is string example....wow!!! "
s1 = S.count('s',5,8)
print(s1) #1
(10)字符串类型格式化输出:
%占位符,s字符串,d:digit数字(注:只是单纯加%:%%)
name = input('请输入姓名:')
age = input('请输入年龄:')
height = input('请输入身高:')
msg = '我叫%s,我年龄是%s,我的身高%s'%(name,age,height)
print(msg)
# 请输入姓名:江河
# 请输入年龄:18
# 请输入身高:170
# 我叫江河,我年龄是18,我的身高170
#用户登录(三次输错机会)且每次输错误时显示剩余错误次数(提示:使用格式化输出)
count = 3
count_0 = 0
while count_0<3:
username = input('请输入姓名:')
password = input('请输入密码:')
if username == '江河' and password == '123456':
print('登录成功')
else:
count_0 += 1
count -= 1
print('用户名或密码输入错误,剩余错误次数%s次。'%count)
format()方法,基本格式是:<模板字符串{}>.format(<逗号分隔的参数>)
#(1)通过调用format()方法,来实现新的字符串
s = "我的名字叫{},今年{},爱好{}".format('江河','18岁','爬山')
print(s)
#(2){}中录入元素,可以指定多个相同的元素,参数只需传入一个
s = "我的名字叫{0},今年{1},爱好{2},我叫{0}".format('江河','18岁','爬山')
print(s)
#(3)使用字典的键值对来做参数,无需指定参数顺序
s = "我的名字叫{name},今年{age},爱好{hobby},我叫{name}".format(name = '江河',hobby = '爬山',age = '18岁')
print(s)
#(4)引用参数
name = input('请输入名字: ')
s = "我的名字叫{name_1},今年{age},爱好{hobby},我叫{name_1}".format(name_1= name,hobby = '爬山',age = '18岁')
print(s)
(11)replace()用于修改字符串中的old(旧的字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。
格式:replace(self,old,new,count= None) old:要代替的内容,new:新的内容,count:内容如果有重复的,代替几个
s = "来看待街坊邻居复合大师邻居邻居客户"
print(s.replace('邻居','江河',2))
#来看待街坊江河复合大师江河邻居客户
(12)isdigit()判断字符串是否由纯数字组成
s = "12345"
print(s.isdigit()) #True
#加法计算
#加法计算
sum = 0
count = input('请输入运算的信息:')
for i in count.split('+'):
sum += int(i)
print(sum)
# 计算任意输入的字符串,包含多少个数字
count = 0
s = input("请输入信息:")
for i in s:
if i.isdigit():
count += 1
print(count)