Python基础教程代码与注释P27 2.2 通用序列操作

# -*- coding: cp936 -*-
#P27 2.2 通用序列操作 2.2.1 索引
#根据给定的年月日以数字形式打印出日期
months = [    #序列
    'January',  #索引为0
    'February', #索引为1
    'March',    #...
    'April',
    'May',
    'June',
    'July',
    'Agust',
    'September',
    'October',
    'November',
    'December',
]

#以1-31的数字作为结尾的列表 #用反斜线\跨多行
#第1到第20 first second third fourth fifth sixth...
#第21到第30 twenty-first twenty-second twenty-third twenty-fourth...
endings = ['st','nd','rd']+17*['th']\
        + ['st','nd','rd']+7*['th']\
        + ['st']#用反斜线\跨多行    3+17+3+7+1=31
year   = raw_input('年:')
month  = raw_input('月(1-12):')
day    = raw_input('日(1-31):')

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

#记得要将月分和天数减1,以获得正确的索引
month_name = months[month_number-1] #函数调用返回 月份 的序列
ordinal = day + endings[day_number-1] #天数
print month_name + ' ' + ordinal + ',' + year   #输出样式:February 6th,2018
raw_input("Press <enter>")



# -*- coding: cp936 -*-
#P29 2.2 通用序列操作 2.2.2 分片
#    0  3     9                     31
tag = '<a href="http://wwww.python.org">Python web site</a>'
print tag[9:31] #输出tag字符串中第10(包含)到 31个字符(不包含)
print tag[33:-4]#输出tag字符串中第33(包含)至 倒数第4个字符(不包含)

numbers = [1,2,3,4,5,6,7,8,9,10]
print numbers[3:6]
print numbers[0:1]#第0个开始 第1个之前
#最后3个元素
print numbers[7:10]#索引10指向的是第11个元素,最后一个元素之后
print numbers[-3:-1]#最后2个元素
print numbers[-3:0]#分片中最左边的索引比它右边的晚出现,结果为空序列
print numbers[7:3] #分片中最左边的索引比它右边的晚出现,结果为空序列
print numbers[-3:]
print numbers[:3]
print numbers[:]#复制整个序列

print numbers[0:10:1]
print numbers[0:10:2]#步长为2,步长不能为0
print numbers[::4]#步长为4
print numbers[8:3:-1]#负数,从右到左提取元素
print numbers[10:0:-2]#负数,从右到左提取元素
print numbers[0:10:-2]#分片中最左边的索引比它右的晚出现,结果为空序列
print numbers[::-2]#负数,从右到左提取元素
#分片示例
#对http://www.something.com形式的URL进行分割
url = raw_input('Please enter the URL:')
domain = url[11:-4]#输入http://www.python.com输出python
print "Domain name:" + domain

raw_input("Press <enter>")

# -*- coding: cp936 -*-
#P31 2.2 通用序列操作 2.2.3 序列相加
print [1,2,3] + [4,5,6]   #列表
print 'hello ' + 'world'   #字符串
#print [1,2,3] + 'world' 两种相同类型的序列才能进行连接操作
print sum([1,2,3])
raw_input("Press <enter>")

# -*- coding: cp936 -*-
#P31 2.2 通用序列操作 2.2.4 乘法
print 'python ' * 5
print [42] * 10
[]#空列表
#初始化一个长度为10的列表
sequence = [None] * 10 #None是一个Python的内建值,表示什么也没有
print sequence

#codelist2-3 序列(字符串)乘法示例
sentence = raw_input("Sentence:")
screen_width = 80 #屏幕宽度
text_width = len(sentence) #语句长度
box_width = text_width + 6 #方框宽度=语句长度+6
#空白=(屏幕宽度-方框宽度)/2
lef_margin = (screen_width - box_width)//2 #整数除法运算符//
print
print ' ' * lef_margin + '+' + '-' * (box_width+2) + '+'
print ' ' * (lef_margin + 4) + '|' + ' ' * text_width + '|'
print ' ' * (lef_margin + 4) + '|' +       sentence   + '|'
print ' ' * (lef_margin + 4) + '|' + ' ' * text_width + '|'
print ' ' * lef_margin + '+' + '-' * (box_width+2) + '+'
print
raw_input("Press <enter>")

# -*- coding: cp936 -*-
#P32 2.2 通用序列操作 2.2.5 成员资格
permissions = 'rw'
print 'w' in permissions    #in运算符 检查一个值是否在序列中
print 'x' in permissions

users = ['mlh', 'foo', 'bar']
print raw_input('Enter your user name:') in users
subject = '¥¥¥ Get rich now!!! ¥¥¥' #因3个$符号在博客中会显示乱码(漏洞?),此处用¥代替$符号
print '¥¥¥' in subject

#codelist2-4 序列成员资格示例
    #检查用户名和PIN码
database = [
    ['albert',  '1234'],
    ['dilbert', '4242'],
    ['smith',   '7524'],
    ['jones',   '9842']
]
username = raw_input('User name:')
pin = raw_input('PIN code:')
if [username, pin] in database: print 'Access granted'
print
raw_input("Press <enter>")


# -*- coding: cp936 -*-
#P33 2.2 通用序列操作 2.2.6 长度、最小值和最大值
print 'len函数返回序列中所包含元素的数量'
print "min函数返回序列中最小的元素"
print 'max函数返回序列中最大的元素'
numbers = [100, 34, 678]
print len(numbers)
print max(numbers)
print min(numbers)
print max(2, 3)
print min(9, 3, 2, 5)
raw_input("Press <enter>")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值