模块
下面这些操作与模块有关。
dir()
这个函数是打印出module的属性
除此之外集合实例也可以查看其自己的所有使用方法。
使用import
导入一个模块文件
使用exec执行模块
集合
这个集合与数学中的集合类似,可以进行相关的‘与’、‘或’、‘非’等操作
>>> x = set('abcde')
>>> y = set('bdxyz')
>>> x
set(['a', 'c', 'b', 'e', 'd'])
>>> 'e' in x
True
>>> x | y
set(['a', 'c', 'b', 'e', 'd', 'y', 'x', 'z'])
>>> x & y
set(['b', 'd'])
>>> z = x.intersection(y)
>>> z
set(['b', 'd'])
# 以上两种都是求交集
>>> x - y
set(['a', 'c', 'e'])
>>> x ^y
set(['a', 'c', 'e', 'y', 'x', 'z'])
使用其他方式改变集合的样子
# 求交集
>>> z = x.intersection(y)
>>> z
set(['b', 'd'])
# add 插入一个项目
>>> z.add('spam')
>>> z
set(['b', 'd', 'spam'])
# update按位置求并集
>>> z.update(set(['x','y']))
>>> z
set(['y', 'x', 'b', 'd', 'spam'])
# remove 删除一个项目
>>> z.remove('b')
>>> z
set(['y', 'x', 'd', 'spam'])
第二种方式成为集合的方法,前一种限制了两边必须是集合,后一种可以针对任何可迭代的对象
>>> s = set([1,2,3])
>>> s | set([3,4])
set([1, 2, 3, 4])
>>> s | [3,4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for |: 'set' and 'list'
>>>
>>> s.union([3,4])
set([1, 2, 3, 4])
>>>
python3.0中以下形式是等价的:
set([1,2,3,4])
{1,2,3,4}
集合解析
所谓的集合 解析就是将一个集合的每一个元素分离出来,在2.x中是下面这个样子的:
>>> {x ** 2 for x in [ 1,2,3,4]}
set([16, 1, 4, 9])
>>>
自己就生成了集合,在3.0中不会,直接就是{,,}的形式。
{ x for x in 'spam' }
set(['a', 'p', 's', 'm'])
>>>
x是循环变量在这个程序例子中。
列表与集合互相转换
>>> L = [1,2,3,4]
>>> set(L)
set([1, 2, 3, 4])
>>> L = list(set(L))
>>> L
[1, 2, 3, 4]
>>>
习题部分
如何截去小数的小数部分
两种方法: int(N)和math.trunc(N)
>>> int(6.5)
6
>>> import math
>>> math.trunc(6.5)
6
怎么样将一个整数转化为浮点数
两种方案: float(n)和混合运算
>>> float(6)
6.0
>>> 6 * 1.0
6.0
如何讲一个整数转化为16、8、2进制
在2.x的情况下测试如下:
>>> hex(16)
'0x10'
>>> oct(765)
'01375'
>>> bin(16)
'0b10000'
如何将上面的问题反过来
使用int(S, base),其中base是进制的参数
>>> int('01375',8)
765
>>> int('0b10000',2)
16