1.Python Number 数字的分类
<1>整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
<2>长整型(long) - 无限大小的整数,整数最后是一个大写或小写的L。
<3>浮点型(floating) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
<4>复数(complex) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
2.强制类型转换
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
3.Python math/cmath模块
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是实数运算。
要使用 math 或 cmath 函数必须先导入:“import math”/“import cmath”
4.example
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# http://www.runoob.com/python/python-numbers.html
import math
from math import *
import random
if __name__ == "__main__" :
print dir(math)
'''
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign',
'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum',
'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin',
'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
'''
# python 数学函数
# import math
# from math import *
# 绝对值函数
print "绝对值函数(int/float)-->(abs()/fabs())"
print abs(-10) #= 10
print abs(-10.0123456789) #= 10.0123456789
print fabs(-10.0123456789) #= 10.0123456789
print fabs(-10) #= 10.0
# 取整数 上入整数(进一)
print "上入整数"
print math.ceil(2.3) #= 3.0
print ceil(-2.9) #= -2.0
# 取整数 的下舍整数
print "下舍整数"
print floor(2.9) #= 2.0
print floor(-2.3) #= -3.0
# 比较大小 (比较前一个数是否比后一个大)
print "比较大小 (比较前一个数是否比后一个大)"
print cmp(7, 12) #= -1
print cmp(12,12) #= 0
print cmp(22,12) #= 1
# 返回e的x次幂(e^x)
print "返回e的x次幂(e^x)"
print exp(2)
# 求对数
print "求对数,幂的逆运算"
print log(1) #= 0.0 任何数的0次幂 等于1 // 入参必须大于0
print log(e) #= 1.0 默认底数为e
print log(100,10) #= 2.0 (100为底,10的对数)
print log10(1000) #= 3.0 (10为基数,任何底数的对数)
print log10(0.001) #= -3.0
# 整数小数分离
print "整数小数分离"
print modf(12.213) #=(0.2129999999999992, 12.0)
print modf(-3.14) #=(-0.14000000000000012, -3.0)
print modf(-0.618) #=(-0.618, -0.0)
# float数保留有效位
print "保留有效位数"
print round(modf(12.213)[0],3) #= 0.213 不再是0.2129999999999992
# 最大最小值
number_list = [7.0,5.5,1,12.0,12,1.0,5,7,9.9]
print max(1.2,1.6,1.5,0.9) #= 1.6
print max(1,1.0) #= 1
print max(1.0,1) #= 1.0 如相等,取左值
print max(number_list) #= 12.0
print min(1.2, 1.6, 1.5, 0.9) #= 0.9
print min(1, 1.0) #= 1
print min(1.0, 1) #= 1.0
print min(number_list) #= 1
# 求幂运算
print "求幂运算"
print pow(5,2) #= 5^2 = 25.0 (float)
# 求平方根
print "求平方根"
print sqrt(100) #= 10.0
print sqrt(2) #= 1.41421356237
# python 随机数
# range 函数
print range(10) #= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0~10)之间的整数
print range(-1,10) #= [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [-1,10)之间的整数
print range(2,10,3) #= [2, 5, 8] [2,10)之间间隔为3的整数
#以下 需要 import random
# 从序列中随机选数字
print random.choice(range(10)) #= 0~9中的随机一个
# 返回指定递增基数集合中的一个随机数,基数缺省值为1
print "randrange(start, stop, step) : "
# 输出 100 <= number < 1000 间的偶数
print "randrange(100, 1000, 2) : ", random.randrange(100, 1000, 2)
# 输出 0 <= number < 1000 可以被3整除的随机数
print "randrange(0, 1000, 3) : ", random.randrange(0, 1000, 3)
# 随机生成一个在[0,1)范围内的实数
print random.random()
# 将序列的所有元素随机排序
sort_list = range(10)
random.shuffle(sort_list)
print sort_list
# 随机生成下一个实数,它在[x,y]范围内。
print random.uniform(-1,1)
# 关于三角函数、复数运算的,参考:http://www.runoob.com/python/python-numbers.html