所有序列都可以进行某些特定的操作,这些操作包括,索引,分片,加,乘以及检查某个元素是否属于序列的成员。除此之外,Python还有计算序列长度,找出最大元素和最小元素的内建函数。
1、索引
序列中的所有元素都是有编号的—从0开始递增,这些值可以通过编号来进行访问,这一点比较像Java中的数组。
下面我们来写一个示例程序:
要求输入年、月(1-12的数字)、日(1-31的数字),然后打印出相应日期的月份。等等。
根据给定的年月日以数字形式打印日期
months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
以1-31的数字作为结尾的列表
endings = ["st","nd","rd"]+17*["th"]+["st","nd","rd"]+7*["th"]+["st"];
year = input("请输入年份:");
month = input("请输入月份:");
day = input("请输入所在天:");
month_number = int(month);
day_number = int(day);
month_name = months[month_number-1];
day_name = day+endings[day_number-1];
print("输出的结果为:",month_name+" "+day_name+" "+year);
最后运行的结果为:
2、分片
使用索引能够返回单个元素的值,使用分片的形式可以返回某个范围的值。分片通过冒号相隔的两个索引来划分片区。第一个索引包含在范围内,第二个索引不包含在范围内。如下所示:
python 分片 在序列中:作为分片的运算符,number[3:6]代表的取值范围为:下标3-6
number = [1,2,3,4,5,6,7,8,9,10];
print(number[3:6]);
取出最后三个元素
print("最后三个元素的值为:",number[len(number)-3:len(number)])
或者采用以下方式进行
print("最后三个元素的值为:",number[-3:]);
同样我们也可以用同样的规则取出前三个元素
print("前三个元素为:",number[0:3]);
print("前三个元素为:",number[:3]);
小测试:截取http://www.python.org/的python
url = input("请输入网址:");
print("取出的值为:",url[11:18]);
1.1 更大的步长
直接设置步长的形式,步长不能为0,但是步长可以为负数,表示从右到左提取元素
print("取出步长为2的所有的值:",number[0:10:2]);
运行结果如下所示:
3、序列相加
通过使用加运算符可以进行序列的连接操作,不会去除重复。
python序列相加
num1 = [1,2,3];
num2 = [3,4,5];
num = num1+num2;
print("num1+num2相加的值为:",num);
运行结果为:
num1+num2相加的值为: [1, 2, 3, 3, 4, 5]
备注:如果想让序列进行相加操作,两个序列必须是相同类型。
4、乘法
用数字x乘以某个序列会生成新的序列,而在新的序列中,原来的序列可以被重复x次。
num = [1,2,3];
num1 = num*5;
print("num1的值为:",num1);
输出的结果为:
num1的值为: [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
5、成员资格
检验某个值是否存在于这个序列中。
用 in 运算符判断这个序列中是否存在某个值 为boolean值
member = [1,2,3];
if(8 in member):
print("存在")
else:
print("不存在");
练习 根据输入的用户名和密码判断数据库中是否存在改用户名和密码的集合、如果存在打印输入的用户名和密码存在,不存在打印输入的用户名和密码不存在
dataBase = [["wangjian","1234"],["zhangjian","1234"],["wanglin","1234"],["wangxin","1234"]];
userName = input("请输入姓名:");
userPass = input("请输入密码:");
if([userName,userPass] in dataBase):
print("输入的用户名和密码存在");
else:
print("输入的用户名和密码不存在");
程序输出的结果为:
不存在
请输入姓名:1
请输入密码:1
输入的用户名和密码不存在
6、序列的长度、最大值、最小值
序列的长度、最小值、最大值 len() 长度 max()最大值 min()最小值
num = [1,2,3,4,5,6,7];
print("序列的长度为:",len(num));
print("序列中的最大值为:",max(num));
print("序列中的最小值为:",min(num));
程序输出的结果为:
序列的长度为: 7
序列中的最大值为: 7
序列中的最小值为: 1