python标准库学习笔记3


以下内容来自这里的学习。

类型判断

理论上动态语言不建议判断类型,不过python还是有提供判断的方法。

import types
type(1) == types.IntType

isinstance(1, int)

第一种是使用types模块,第二种是使用内建的isinstance方法。

decimal

因为Java有BigInteger和BigDecimal,所以不会陌生。

import decimal
decimal.getcontext().prec = 7 # set precision to 7, default is 28
decimal.Decimal(1) # create from int
decimal.Decimal('3.14') # create from string

decimal.Decimal(1) / decimal.Decimal(7)

默认decimal精度为28,可以通过getcontext()修改配置。带小数的建议使用字符串创建,否则你用decimal.Decimal(3.14)试试看。

分数

就是那种几分之几的分数。

import fractions
fractions.Fraction(16, -10) # - 8/5
fractions.Fraction(decimal.Decimal('1.1')) # 11/10

fractions.gcd(60, 56) # 4

fractions会帮你做约分,事实上这个库还有一个叫做gcd的函数。通过之前的decimal创建也是可以的。

随机数

import random # or os.urandom, SystemRandom
random.random() # 0.0 <= x < 1.0
random.uniform(1, 10) # 1.0 <= x < 10.0
random.randint(1, 10) # [1, 10]
random.randrange(0, 101, 2) # even integer from 0 to 100
random.choice('abcdefghij') # choose a random element
random.shuffle([1, 2, 3, 4, 5, 6, 7]) # shuffle a list
random.sample([1, 2, 3, 4, 5, 6, 7], 3) # select three items

这块基本照搬标准库介绍的例子,因为我觉得每个方法都很有用。除了基础的随机数,还有典型的几种随机数应用。

operator

映射标准操作。个人暂时能想到使用的地方如下:

import operator
reduce(operator.add, [1, 2, 3, 4], 0)

以上就是今天学习python标准库了解到的东西。

,