当前位置:编程学习 > 网站相关 >>

Byte of Python学习笔记四

八. 模块
模块的创建方法
1. 最简单的方法
创建一个.py文件,包含函数和变量,即创建了一个模块。每一个Python程序就是一个模块。
2. 使用本地语言,如C语言编写,编译;然后在通过Python解释器调用

模块可以被其他程序导入使用,导入模块是使用关键字import,如
import sys
print('\n\nThe PYTHONPATH is', sys.path, '\n')
注意:要导入的模块或与调用程序在同一目录,或者位于sys.path目录下

编译字节码文件.pyc
导入模块时,Python需要对模块进行处理,转换成字节码。该过程会程序执行效率有影响,为了提高程序执行效率,可以将模块文件事先编译成字节码文件.pyc,下次使用时就不需要处理了。

from...import...语句
导入模块内函数,属性,使用时就可以像使用在本模块内定义的函数和属性一样,不要加模块名前缀
>>>from sys import version
>>>print(version)
说明:from 模块名 import * 可以导入除__开头的所有变量(属性)

dir函数
dir(object) 可以列出object的所有变量(属性)
dir() 可以列表当前模块的所有变量(属性)

Packages
包是一个包含__ini__.py文件的目录,目录下存放其他包或模块。如:
africa/
     - __init__.py
     - madagascar/
           - __init__.py
           - bar.py
包africa下包含包madagascar, 包madagascar下包含模块bar.py

Library
库是包和模块的集合


九. 数据结构
Python中共有4中内建数据结构:列表list, 元组tuple, 字典dictionary 和集合set.

1. 列表List
列表是元素的有序集合,列表元素由逗号分隔,方括号括起,列表中可以放任意对象(包括列表对象),列表是可变的可以添加和删除元素。
每个列表都是list类对象。可以通过help(list)查看列表所有属性和方法。
定义列表 shoplist=['apple', 'mango', 'carrot', 'banana']
添加元素 shoplist.append('rice') //添加元素后shoplist=['apple', 'mango', 'carrot', 'banana','rice']
删除元素 del shoplist[0] //删除第一个元素
获取元素 shoplist[1] //获取第二个元素'mango'
遍历所有元素 for item in shoplist
排序 shoplist.sort()
长度 len(shoplist)

2. 元组Tuple
元组与列表类似,也是有序元素的集合,元组元素由逗号分隔,圆括号括起,圆括号不是必须的,元组中可以放任意对象(包括元组对象),元组是不可变的。每个元组都是tuple类对象。可以通过help(tuple)查看元组所有属性和方法。
定义元组 zoo = ('python', 'elephant', 'penguin') 或 zoo = 'python', 'elephant', 'penguin'
获取元素 zoo[1] // 获取第二个元素'elephant'
遍历所有元素 for item in zoo
长度 len(zoo) // 3

特殊元组
(1)空元组 ()
(2)一个元素的元组 (item,),逗号必须要,与(item)表达式进行区分

3. 字典Dictionary
类似Java中的Hash,每一个元素都是一个key:value对,其中key必须是唯一且不可变对象,如strings。每个字典都是dict类对象。
定义字典 ab = {'Swaroop' : 'swaroop@swroopch.com', 'Larry' : 'larray@wall.org'}
获取元素 ab['Swaroop'] // 获取'swaroop@swroopch.com'
添加元素 ab['Guido']='guido@swroopch.com'
删除元素 del ab['Larry']
遍历元素
for name, address in ab.items():
     print('Contact {0} at {1}'.format(name, address))

序列
列表、元组和字符串都是序列。序列的主要特征是拥有检测是否含有某元素的方法(及in和not in表达式)和索引操作。如
1. 列表
alist=['a', 'b', 'c']
'a' in alist //True
alist[1] // 获取'b'元素
2. 元组
atuple=('a', 'b', 'c')
'a' in atuple//True
atuple[1] // 获取'b'元素
3. 字符串
astr='abc'
'a' in astr //True
astr[1] // 获取'b'

索引可以是负数表示倒数第一个元素
如alist[-1] 表示倒数第一个元素'c'

切片操作
可以对序列做切片操作,获取序列的一部分,切片操作与索引操作类似,由冒号(:)分隔0到3个数[start:end:step],第一个表示起始位置,第二个数表示终止位置(不包括该位置元素),第三个数为步长。第一个数没有则默认为0,第二个数没有则默认为序列长度,第三个数没有则默认为1。如
alist = [1, 2, 3, 4]
alist[2:3] = [3]
alist[2:]=[3,4]
alist[:3]=[1,2,3]
alist[1::2]=[2,4]
注意:
1. 列表的切片仍是列表,即使只有一个元素,其他类似。
2. 可以通过alist[:]复制alist列表

集合
集合是简单对象的无序集合。集合具有in,issubset,issuperset,intersection等操作,具体方法及属性可以查看help(set)。
1. 集合定义:
aset=set(['a','b']) www.zzzyk.com
bset={'b','c'}
2. in操作:
'a' in aset // True
3. issuperset操作:
aset.issuperset(bset) // False
aset.issuperset({'a'}) // True
4. intersection操作:
aset.intersection(bset) 等价于 aset & bset // {'b'}

引用
Python中赋值都是将一个对象的引用赋给某个变量,即变量存放着对象的地址。将一个变量值赋给另一个变量,即将变量中存放的对象地址赋给另一个变量,使得它们指向同一个对象。

字符串
每个字符串都是类str的对象。字符串有startswith, find等方法。具体见help(str)

摘自:蓝猫的专栏

补充:Web开发 , Python ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,