《Python基础教程(第2版·修订版)》 第2章 列表和序列(学习笔记·二)

本文介绍了Python中序列的基本操作,包括分片、成员资格检查、序列相加与乘法等,并通过示例展示了如何使用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.2.2分片

1.索引用于访问单个元素,可以使用分片操作来访问一定范围内的元素。

>>> tag = '<a herf="http://www.python.org"> Python web site</a>'
>>> tag[9:30]
'http://www.python.org'
>>> tag[32:-4]
' Python web site'


>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[4:6]
[5, 6]
>>> numbers[0:1]
[1]


>>> numbers[7:10]#访问后三个元素
[8, 9, 10]
>>> numbers[-3:-1]
[8, 9]
>>> numbers[-3:]
[8, 9, 10]
>>> numbers[-3:0]#会发生错误
[]
>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 


2_2.py  分片示例

#对http://www.something.com形式的URL进行分割
url = raw_input('Please enter the URL: ')
domain = url[11:-4]
print "Domain name: " + domain

运行效果:

>>> 
Please enter the URL: http://www.python.org
Domain name: python


2.更大的步长

运行示例:

>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[0:10:2]#前两个构成范围,最后一个是步长
[1, 3, 5, 7, 9]
>>> numbers[3:6:3]
[4]
>>> numbers[::4]
[1, 5, 9]
>>> numbers[8:3:-1]#步长可以为负数,但不能为0,表示从右往左提取元素
[9, 8, 7, 6, 5]
>>> 


2.2.3序列相加

>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'Hello,' + 'world!'
'Hello,world!'


2.2.4乘法

运行示例:

>>> 'python' * 5
'pythonpythonpythonpythonpython'
>>> [42] * 10
[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]


None是一个Python的内建值,它的确切含意是“这里什么也没有”。如下例子可以初始化一个长度为10的空列表

>>> sequence = [None] * 10
>>> sequence
[None, None, None, None, None, None, None, None, None, None]


2_3 序列(字符串)乘法示例

#以正确的宽度在居中的“盒子”内打印一个句子
#注意,整数除法运算符(//)只能用在Python 2.2以及后续版本,在之前的版本中,只是用普通除法(/)
# -*- coding: cp936 -*-
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      + '|'
print ' ' * left_margin + '|' +        sentence       + '|'
print ' ' * left_margin + '|' + ' ' * text_width      + '|'
print ' ' * left_margin + '+' + '-' * (box_width - 2) + '+'
print

运行效果

>>> 
Sentence: He's a very naughty boy!

                         +----------------------------+
                         |                        |
                         |He's a very naughty boy!|
                         |                        |
                         +----------------------------+


2.2.5 成员资格

这里用到一个 "in"运算符来检查成员资格,看示例

>>> permissions = 'rw'
>>> 'w' in permissions
True
>>> 'x' in permissions
False
>>> users = ['mlh','foo','bar']
>>> raw_input('Enter your user name: ') in users
Enter your user name: mlh
True
>>> subject = '$$$ Get rich now!!! $$$'
>>> '$$$' in subject
True
>>> 

2_4.py 序列成员资格示例

#检查用户名和PIN码
# -*- coding: cp936 -*-
database = [
    ['albert','1234'],
    ['dilbert','4242'],
    ['smith','7524'],
    ['jones','9843']
    ]
username = raw_input('User name: ')
pin = raw_input('PIN code: ')

if [username, pin] in database: print 'Access granted'

运行效果:

>>> 
User name: albert
PIN code: 1234
Access granted


2.2.6 长度,最小值和最大值

>>> numbers = [100,34,678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> max(2,3)
3
>>> min(9,3,2,5)
2


















Python基础教程(2修订版)包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了几个具有实际意义的Python项目的开发过程。 Python基础教程(2修订版)内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考。 Python基础教程(2修订版) 目录介绍 第1 基础知识 第2 列表元组 第3 使用字符串 第4 字典:当索引不好用时 第5 条件、循环其他语句 第6 抽象 第7 更加抽象 第8 异常 第9 魔法方法、属性迭代器 第10 充电时刻 第11 文件素材 第12 图形用户界面 第13 数据库支持 第14 网络编程 第15 Python万维网 第16 测试 第17 扩展Python 第18 程序打包 第19 好玩的编程 第20 项目1:即时标记 第21 项目2:画幅好画 第22 项目3:万能的XML 第23 项目4:新闻聚合 第24 项目5:虚拟茶话会 第25 项目6:使用CGI进行远程编辑 第26 项目7:自定义电子公告板 第27 项目8:使用XML-RPC进行文件共享 第28 项目9:文件共享2——GUI本 第29 项目10:DIY街机游戏 附录A 简明本 附录B Python参考手册 附录C 在线资源 附录D Python 3.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值