python学习笔记是摘自挪威Magnus Lie Hetland 教授著,司维 ,曾军崴,谭颖华译,钟读杭审校的Python基础教程(第二版 修订版),对此感激不尽,鄙人的入门书,在此简单总结整理,记录心得。
在python中,最基本的数据结构是序列,序列中的每一个元素被分配一个索引,第一个是0,第二个是1,以此类推。
Python包含6中内建序列:列表(可修改),元组(不可修改),字符串,unicode字符串,buffer对象,xrange对象。
什么是列表?列表的各个元素通过逗号分隔,写在方括号中。形如:idol = [‘zhaoliying’,18]
对于序列通用的操作有:索引,分片,加,乘,成员资格,计算序列长度,找出最大元素和最小元素的内建函数。
1 :索引
>>> idol = 'zhaoliying'
>>> idol[0]
'z'
>>> idol[-1] #最后一个元素编号是-1
'g':
2:分片(访问一定范围内的元素,通过冒号隔开的两个索引来实现,用于提取序列的一部分)
两个索引相当于两个边界,分片结果包含第一个索引的元素,不包含第二个索引的元素。
>>> idol = ' idol'
>>> idol[4:12]
'dol="htt'
>>> number = [2,4,6,7,8,1,3,5,9,10]
>>> number[2:4]
[6, 7]
>>> number[-4:-1] #列表结尾索引是-1
[3, 5, 9]
>>> number[-4:0]
[]
>>> number[-4:] #若分片结果要包含序列结尾,置空第二个索引即可
[3, 5, 9, 10]
>>> number[:4] #若分片结果要包含序列开始,置空第一个索引即可
[2, 4, 6, 7]
>>> number[:] #若想得到整个序列,将两个索引都置空即可
[2, 4, 6, 7, 8, 1, 3, 5, 9, 10]
>>> number[0:10:2] #步长为2
[2, 6, 8, 3, 9]
>>> number[::3] #从序列开始的元素算起,步长为3,提取元素
[2, 7, 3, 10]
>>> number[6:2:-1] #从右到左提取元素,步长为1
[3, 1, 8, 7]
3:加(通过加运算符就可以进行序列的连接操作,同类型的序列才可以进行连接操作)
>>> [1,2,1]+[1,3,5]
[1, 2, 1, 1, 3, 5]
>>> 'zhaoliying'+'perfect!'
'zhaoliyingperfect!'
4:乘(*表示重复)
>>> 'zhaoliying I LOVE YOU!'*3
'zhaoliying I LOVE YOU!zhaoliying I LOVE YOU!zhaoliying I LOVE YOU!'
改了一下书上的“盒子代码”,我的“盒子浪漫”代码如下,嘿嘿嘿,比心
#以正确的宽度在居中的“盒子”内打印一个句子
sentence = raw_input("sentence: ")
screen_width = 80
text_width = len(sentence)
box_width = text_width +6
left_margin = (screen_width - box_width) // 2
print
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print ' ' * left_margin + '| ' + '-' * text_width +'-' *2 + ' |'
print ' ' * left_margin + '| ' + '-' *1+sentence +'-' *1+ ' |'
print ' ' * left_margin + '| ' + '-' * text_width+'-' *2 + ' |'
print ' ' * left_margin + '+' + '-' * (box_width-2) + '+'
print
结果如下:
5:成员资格(检查一个值是否在序列中,可以使用in运算符)
in检查某个条件是否为真,然后返回相应的值,条件为真返回true,否则返回false。
>>> idol = 'zhaoliying'
>>> 'y'in idol
True
>>> 'm'in idol
False
#检查用户名和PIN码
idol = [ ['zhaoliying','no.1'],['jiangshuying','no.2'],['wuenda','no.3'],['huba','no.4'] ]
username = raw_input('user name: ')
pin = raw_input('PIN code: ')
if[username,pin] in idol: print 'Access granted'
结果如下:
6:长度,最小值和最大值
内建函数len函数返回序列中所包含元素的数量,min函数和max函数分别返回序列中的最大和最小的元素。