vimer linux kernel 爱好者

python基本数据类型

2016-08-03

模块

下面这些操作与模块有关。

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

Comments

Content