一、通用序列操作
序列:是一块用来存放多个值的连续存储空间。
Python中常用的序列结构:字符串、列表、元组等。
序列成员可以进行的操作:索引、分片、加、乘、检测某个元素是否属于指定某个序列,计算序列的长度、最大元素、最小元素……
1、索引(下标):只能获取单个元素
序列对应下标:
正索引:左往右:0,1,2。。。;
负索引:右往左:-1,-2.。。。。;
2、分片:获取一定范围内的元素
语法:slice[start:end:step]
start:起始索引;
end:结束索引,【不包括结束位本身】;
step:步长【默认为1,不能为0】。
注意:省略“start”,表示序列
3、序列相加
加法运算符(相同类型的序列):连接;
4、乘法
5、长度:len()、最小值:min()、最大值:max()
strs=input("请输入一个字符串:")
print(len(strs))
print(min(strs))
print(max(strs))
6、字符串格式化操作
(1)、符号“%”
a、”%[标志][0][最小输出宽度][.精度]格式字符”%变量;
b、“%[+/-][0][m][.n]格式字符”%变量;
标志字符:输出数据的对齐方式 ,"+":右对齐,“-”:左对齐;
输出最小宽度:超过按实际输出,低于则补空格或0
精度:数字则表示小数点的位数,字符则字符个数,超过则截去多余的。
格式字符串:
格式字符 | 功能说明 |
---|---|
%s | 字符串(采用str()显示) |
%r | 字符串(采用repr()显示) |
%c | 单个字符串 |
%% | 字符% |
%d,%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%f,%F | 浮点数 |
%e,%E | 指数(基底为e或E) |
%g,%G | 以%f或%e中较短的输出宽度输出浮点数 |
a=15
b=12345678.1234567
strs="I like to learn the Python"
print("a=%05d"%a)#使用m控制输出位数,空位补0
print("b=%8.3f"%b)#用m.n控制输出的长度和小数点位数
print("%17s"%strs)#使用m控制输出字符串长度
print("%17r"%strs)#使用%r输出字符串
print("%-17.5s"%strs)#使用m.n进行左对齐、限制字符串长度和字符串位数.5:表示输出5个
(2)format()方法
格式:模板字符串.format(逗号风格的参数)
内部样式:{参数序号:格式控制标记}
7、字符串方法
(1)str.find(sub[,start[,end]])方法:
str:被查找字符串;
sub:查找的字串;
start、end:开始、结束索引,不包含end;
在字符串中查找字串,有则返回最左端的位置,无则返回-1。
(index()方法是当字串不存在会抛出异常)
(2)str.count(sub[,start[,end]])方法:返回统计子串在字符串中出现的次数
(3)split()方法:指定字符为分隔符
str.split([delimite,num])
str:被分隔的字符串;
delimite:分隔符,省略时默认为空字符;
num:分隔次数,默认全分隔。
(4)join()方法:将序列里的元素指定字符连接,形成新字符串;
str.join(sequence);
str:连接字符,sequence:元素序列
(5)replace()方法:替换字符串
str.replace(old,new[,max])
old:被替换的字符串;
new:新字符串。
(6)strip()方法:删除字符串两端连续的空白字符串或指定字符串
str.strip[[chars]]
(7)lower()和upper()方法:大写字母全部转为小写和小写字母转为大写。
Str.lower();str.upper()
(8)isalnum()方法:检测字符串是否有字母或数字或字母和数字组成,有则True,无则False
8、典型案例
#注册验证
user_name=input("请输入用户名(以“_”开头,3-30个字符)")
password=input("请输入密码(由下划线、数字和字母共同组成,8-16个字符)")
if user_name[0]!="_":
print("没有以_开头")
elif 3>len(user_name)or 30<len(user_name):
print("用户长度不正确")
elif 8>len(password)or 16<len(password):
print("密码长度不正确")
elif password.find('_')==-1:
print("密码未设有下划线")
else:
passwords=password.replace('_','1')
if passwords.isalnum():
print("注册成功")
else:
print("注册失败")
#判断星期几
letter=input("请输入第一个字母:")
letter=letter.upper()
if letter == "M":
print("星期一")
elif letter == "T":
letter = input("请输入第二个字母:")
letter =letter.lower()
if letter == "u":
print("星期二")
else:
print("星期四")
elif letter == "W":
print("星期三")
elif letter =="S":
letter = input("请输入第二个字母:")
letter =letter.lower()
if letter == "u":
print("星期日")
else:
print("星期六")
else:
print("星期五")
test_str="02101 Hello Python 10310"
test_str=test_str.strip("021013 ")
print(test_str)
#将单独的i转化为I
text=input("请输入一段英文:")
result=[]
s_text=text.split()
for i in range(len(s_text)):
if len(s_text[i])!=1:
result.append(s_text[i])
else:
result.append(s_text[i].replace('i','I'))
print(' '.join(result))