序列
在Python中最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号----即元素的位置,也称索引。索引从0开始,0,1,2,3,...。也可以从最后一个数开始,标记为-1,依次为-1,-2,-3....
列表与元组的区别:列表可以修改,元组不可修改。
通用序列操作
1.索引
索引示例:
#根据给定的年月日以数字形式打印出日期
months=[
'January','February','March','April','May','June','July','August','Sepetember','October','November','December'
]
#以1~31的数字作为结尾的列表,给Day加后缀
ending=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
print(ending)
year=input('Year: ')
month=input('Month(1-12): ')
day=input('Day(1-31): ')
month_number=int(month)
day_number=int(day)
#记得要将月份和天数减一,以获得正确的索引
month_name=months[month_number-1]
ordinal=day+ending[day_number-1]
print(month_name+' '+ordinal+'. '+year)
输出:
#给日期后加后缀
['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st']
Year: 2018
Month(1-12): 1
Day(1-31): 1
January 1st. 2018
2.切片
使用切片操作来访问一定范围内的元素。切片通过冒号隔开两个索引来实现:
a=[1,2,3,4,5,65,76,7,8,89,9,67,88]
print(a[7:10])#从表头开始
print(a[7:-4])
print(a[-6:-4])#从表尾开始
#切片中最左边的索引比右边的晚出现在序列中,结果就是一个空序列
print(a[-6:0])
print(a[:])
输出:
[7, 8, 89]
[7, 8]
[7, 8]
[]
[1, 2, 3, 4, 5, 65, 76, 7, 8, 89, 9, 67, 88]
步长:
步长是1,切片操作就按照这个 步长逐个遍历序列的元素,然后返回开始和结束点之间的元素
代码实现:
a=[1,2,3,4,5,65,76,7,8,89,9,67,88]
print(a[0:13:2])
输出:
[1, 3, 5, 76, 8, 9, 88]
None、空列表和初始化
None是一个Python的内建值,表示“这里什么都没有”
#以正确的宽度在居中的“盒子”内打印一个句子
#获取句子长度
sentence = input('Plese input a sentence:')
screen_width =100
#获取文本的长度
text_width =len(sentence)
#文本的宽度
box_width = text_width +10
#计算出左右两边需空余的格式数[左边缘,右边缘]
left_margin = (screen_width - box_width)//2
box_left_margin = (box_width-text_width)//2
#打印屏幕宽度
print('='*100)
print(' '*left_margin + '+' + '-' *(box_width-2) + '+')
print(' '*left_margin + '|' + ' ' *(box_width-2) + '|')
print(' '*left_margin + '|' + ' '*(box_left_margin-1) + sentence + ' '*(box_left_margin-1) + '|')
print(' '*left_margin + '|' + ' ' *(box_width-2) + '|')
print(' '*left_margin + '+' + '-' *(box_width-2) + '+')
#打印屏幕宽度
print('='*100)
输出:
Plese input a sentence:Hello world
====================================================================================================
+-------------------+
| |
| Hello world |
| |
+-------------------+
====================================================================================================