Python_序列

来源:互联网 发布:hd网络是什么意思啊 编辑:程序博客网 时间:2024/06/06 23:57


**************
**Python序列**
**************
(1)序列(数据结构的一种)的操作
1.索引(排序的编号)
2.分片
3.序列相加
4.乘法
5.包含
6.获取长度、最小值、最大值

————————————————————————
数据结构:通过某种方式组织在一起的数据元素的集合
内建序列:列表和元组,字符串,Unicode字符串,Buffer对象,xrange对象
————————————————————————

1.索引(排序的编号):

列表索引:

用[]扣起来表示列表,只要把逗号分隔的不同的数据项使用方括号括起来即可, edwrad=['Edrard Gundy',42]这是一个序列(是一个列表序列,包含两个元素,字符串元素和整形元素),
john=['John Smith',50],database=[edwrad,john]可以列表中放列表 ==> [['Edrard Gundy', 42], ['John Smith', 50]]。
database[0](从databse列表中取第一个元素)==> ['Edrard Gundy', 42]

字符串索引:

greeting='Hello'(第一个脚标为0对应H,第二个脚标为1对应 e,第三个脚标为2对应L,第四个脚标为3对应L,第五个脚标为4对应o。
倒数第一个的脚标为-1,倒数的二个的脚标为-2,倒数第三个的脚标为-3.。。。。),
当取第一个的时候greeting[0] ==> 'H'

————————————————————————————————————————————————————————————————
索引的引用:

months=['January','February','March','April','May','July','August','September','October','November','December']
endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
year=raw_input('Year')
month=raw_input('Month(1-12):')
day=raw_input('Day(1-31)')

month_number=int(month)
day_number=int(day)

month_name=months[month_number-1]
ordinal=day+endings[day_number-1]

print month_name+' '+ordinal+', '+year

—————————————————————————————————————————————————————————————————

2.分片(提取序列中的一部分数据):

提取字符串:

我们要提取tag='<a href="http://www.python.org">Python Web site</a>'里面的http://www.python.org字符串时,
可通过分片提取:tag[9:30] 是指从脚标9(包含9)开始取,到脚标30(不包含30)结束。打印为:'http://www.python.org'
tag[32:-4] -4是倒着数的也就是顺数脚标为46,打印:'Python Web site'

提取列表:

提取列表number=[1,2,3,4,5,6,7,8,9,10]中的4,5,6 通过分片提取:number[3:6] ==> [4, 5, 6]
我们可以通过number[-3:]取到最后一位:==> [8,9,10]
还可以通过number[:3]取到脚标为3的前几位元素 ==> [1,2,3]
还有number[:]可以取到全部元素 ==> [1,2,3,4,5,6,7,8,9,10]

number[0:10:2]或number[0::2] 步长为二(脚标公差为二) ==> [1, 3, 5, 7, 9]
number[1:10:2]或number[1::2] 步长为二(脚标公差为二) ==> [2, 4, 6, 8, 10]


注意unmber[:::]为顺数,如果脚标不和理就打印“[]”空,而unmber[::—]倒数,比如:number[9:2:2] ==> [] 
number[10:2:-2] ==> [10, 8, 6, 4]


---------------------------------------------------------------------------------------------------------------------------

3.序列相加(两个序列和起来):

[1,2,3]+[4,5,6] ==> [1,2,3,4,5,6]
‘Hello,’+'World' ==> 'Hello,World'

序列相加必须类型相同,比如列表只能和列表相加,字符串和字符串相加。不能字符串和列表相加!

——————————————————————————————————————————————————————————

4.乘法(序列重复):

‘python’*5 表示字符串重复5次 ==> 'pythonpythonpythonpythonpython'
[42]*5 表示列表重复5次 ==> [42, 42, 42, 42, 42]
[]*5 ==> [] (五个都是空列表就打印一个)
[None]*5 ==> [None, None, None, None, None] (有五个元素个空值,把五个都打印)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
做一个打印文本框的小程序:
sentence=raw_input("Sentence:") # 定义一个变量sentence接收输入的文本
screen_width=80 #屏幕的宽度为80个字符
text_width=len(sentence) #获取文本长度len(sentence)
box_width=text_width+8 #盒子(外框)的长度
left_margin=(screen_width-box_width)//2 #左空白的宽度

'''打印'''
print
print ' '*left_margin+"+"+'-'*box_width+'+' 
print ' '*left_margin+"| "+' ' *text_width+ ' |'
print ' '*left_margin+"| "+ sentence +' |'
print ' '*left_margin+"| "+' ' *text_width +' |'
print ' '*left_margin+"+"+'-'*box_width +'+'
print


-----------------------------------------------------------------------------------------------------------------------------