python 内建类型
'''
数值 numbers
字符串 strings
列表 lists
字典 dictionaries
元组 tuples
文件 files
集合 sets
'''
1.1 序列的操作
所有序列类型都可以进行的特定操作如下:
索引(indexing)
分片(sliceing)
加(adding)
乘(multiplying)
成员资格(检查某个元素是否属于序列)
1.1.1.1 索引
序列中所有元素都是有编号的,从0开始递增。元素可以通过编号进入访问。
实例:
!/usr/bin/python
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec']
endings = ['st','nd','rd'] + 17* ['th'] + ['st','nd','rd'] + 7* ['th'] + ['st']
year = rawinput(year:
)
month = rawinput(month:
)
day = raw_input(day:
)
monthnum = int(month)
daynum = int(day)
monthname = months[monthnum-1] #索引
dayord = day + endings[daynum-1] #索引
print monthname + ' ' + dayord + ' ' + year
输入year: 2011
month: 12
day: 21
输出:Dec 21st 2011
1.1.1.2 分片
使用索引可以访问单个元素,使用分片可以访问一定范围内的元素。
分片需要提供两个索引作为边界,用冒号分隔两个索引,第1个索引的元素包含在分片内,第二个索引的元素不包含在分片内,如:
tag='http://www.python.org'
tag[7:21]
输出:'www.python.org'
注:tag[7:21],取第7到第20个字符。
若想包含从第一个开始(或直到最后一个结束)的字符串,可以将前一个(或后一个)索引置空,如:tag[:5], tag[7:], tag[:]
步长:分片中的第三个值(开始与结束索引之后)
如:
idx=[1,2,3,4,5,6,7,8,9,10]
idx[::2] 输出:[1, 3, 5, 7, 9]
idx[::-1] 输出:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
1.1.1.3 序列加法
两种相同类型的序列才能进行连接操作,如:
[1,2,3] + [4,5,6] 输出:[1, 2, 3, 4, 5, 6]
‘hello’ + ’’ + ‘world’ 输出:’helloworld’
不同类型序列不能相加,如:[1,2,3] + ‘hello’ 提示出错
1.1.1.4 序列乘法
数字x与序列相乘后,原序列被重复x次。
[12] * 10 输出:
列表初始化,创建10个元素空间但没有值:[None] * 10
1.1.1.5 成员资格
in运算,检查一个值是否在序列中。
例1:
users=['taobao', 'alibaba', 'root']
inputname=rawinput('Enter your user name: ')
if inputname in users:
print inputname + ' is in users!'
else:
print 'Warning! ' + input_name + ' is not in users!'
例2:
db = [
['smith','4309'],
['jones','0921'],
['alber','8745'],
]
username = rawinput('user name: ')
pin = rawinput('pin code: ')
if [username, pin] in db:
print 'Access granted!'
else:
print 'Warning: username or pin is error!'