Python学习笔记_数字
2015-07-20 00:00
585 查看
Python学习笔记_数字
整形
布尔型
标准整形
长整形
双精度浮点型
复数
复数的内建特性
操作符
混合模式操作符
标准类型的操作符
算数操作符
除法
位操作符只适用于整形
内建函数与工厂函数
标准类型函数
数字类型函数
其他数字类型
布尔数
十进制浮点数
随机数
整形一般都是以十进制表示,但是有些写法缺不是以十进制表示的
[thead]
在一个整形值后面加上
Python中的浮点数栗子:
在Python中若要表示一个复数,就要遵循下面的约定:
虚数不能单独存在,他们总是和一个值为
实数部分和虚数部分都是浮点型
[thead]
如果一个操作数是复数,那么另外一个操作数转换为复数
否则,如果其中一操作数是浮点型,那么另外一个操作数被转换为浮点型
否则,如果有一个操作数为长整形,那么另外一个操作数被转换为长整形
否则,两者必然都是普通整形,无需类型转换
Python提供了
举个栗子:
[thead]
双目运算符
[thead]
这三者的区别如下:
[thead]
举个栗子:
传统除法栗子:
真正除法栗子:
地板除栗子:
传统除法和地板除的最大区别在于负数,传统除法是直接舍弃小数部分,地板除是向下取整。
[thead]
[thead]
功能函数
[thead]
这里要讲三个函数的区别,
函数
函数
函数
仅用于整形的函数
[thead]
布尔型是整形的子类,但是不能再被继承
没有
如果要定义一个心新类,并且想要根据根据对象的数据来决定对应的布尔值,那么就要定义
[thead]
整形
布尔型
标准整形
长整形
双精度浮点型
复数
复数的内建特性
操作符
混合模式操作符
标准类型的操作符
算数操作符
除法
位操作符只适用于整形
内建函数与工厂函数
标准类型函数
数字类型函数
其他数字类型
布尔数
十进制浮点数
随机数
Python学习笔记_数字
整形
布尔型
布尔型的取值范围只有两个值,True和
False
标准整形
Python的标准整形就好比是32位的int类型,和
C语言没有什么两样
整形一般都是以十进制表示,但是有些写法缺不是以十进制表示的
写法 | 所表示进制 | 栗子 |
---|---|---|
以数字0开始 | 八进制数字 | 010(十进制为8) |
以字符0x开始 | 十六进制数字 | 0x10(十进制为16) |
长整形
Python里面的长整形不同于C语言里面的长整形,Python的长整形能表达的数值仅仅与机器支持的内存大小有关,可以很容易的表达一个很大的数
在一个整形值后面加上
L,那么这个整形就是长整形,比如
1234567890L,现在整形和长整形已经逐渐统一,用户将基本感觉不到两者的区别存在
双精度浮点型
Python的中的双精度浮点数有点类似于C语言中的
double类型,但是二者还是有所不同,Python浮点数的实际今年度依赖于机器架构和创建Python解释器的编译器.
Python中的浮点数栗子:
0.0,
3.1416,
1.345e-12
复数
Python下面的复数是由两部分组成的,一个是实部(real),一个是
虚部(imag),一个复数就表示为:
real+imagj
在Python中若要表示一个复数,就要遵循下面的约定:
虚数不能单独存在,他们总是和一个值为
0.0的实部一起来构成一个复数
实数部分和虚数部分都是浮点型
复数的内建特性
属性 | 描述 |
---|---|
num.real | 得到复数的实部 |
num.imag | 得到复数的虚部 |
num.conjugate() | 返回该复数的共轭复数 |
操作符
混合模式操作符
如果将两个不同类型的数字相加,那么就存在一个类型转换的问题,其转换规则如下:如果一个操作数是复数,那么另外一个操作数转换为复数
否则,如果其中一操作数是浮点型,那么另外一个操作数被转换为浮点型
否则,如果有一个操作数为长整形,那么另外一个操作数被转换为长整形
否则,两者必然都是普通整形,无需类型转换
Python提供了
coerce()内建函数帮助我们实现这种转换
举个栗子:
print coerce(1+1j , 1) print coerce(1.0, 1) print coerce(1+1j , 1.0) #运行结果 #((1+1j), (1+0j)) #(1.0, 1.0) #((1+1j), (1+0j))
标准类型的操作符
当两个操作数是同一种数值类型的时候,此时就会用到类型对应的标准类型操作符算数操作符
单目运算符运算符 | 执行的操作 |
---|---|
+ | 正号 |
- | 负号 |
运算符 | 执行的操作 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 |
** | 幂运算 |
// | 地板除 |
除法
在Python里面有三种的除法操作,他们分别是传统除法,
真正的除法,
地板除
这三者的区别如下:
除法类别 | 除法效果 |
---|---|
传统除法 | 如果操作数是整形,那么就舍弃小数部分,返回一个整形;如果是操作数之一是浮点数,那么就执行真正的除法(保留小数部分) |
真正的除法 | 不管操作数是什么类型的,都执行真正的除法,但是需要导入from __future__ import division |
地板除 | 不管操作数是什么累心赶得,操作都是向下取整 |
传统除法栗子:
print 1/2 print -1/2 print 1.0/2 print -1.0/2 #运行结果 #0 #-1 #0.5 #-0.5
真正除法栗子:
from __future__ import division print 1/2 print -1/2 print 1.0/2 print -1.0/2 #运行结果 #0.5 #-0.5 #0.5 #-0.5
地板除栗子:
print 1//2 print -1//2 print 1.0//2 print -1.0//2 #运行结果 #0 #-1 #0.0 #-1.0
传统除法和地板除的最大区别在于负数,传统除法是直接舍弃小数部分,地板除是向下取整。
位操作符(只适用于整形)
位操作符 | 功能 |
---|---|
~num | 对每一位取反 |
num1 << num2 | num1 左移 num2 位 |
num1 >> num2 | num1 右移 num2 位 |
num1 & num2 | num1 与 num2按位与 |
num1 | num2 | num1 与 num2按位或 |
num1 ^ num2 | num1 异或 num2 |
内建函数与工厂函数
标准类型函数
有三个标准类型的函数:cmp(),
str(),
type()
数字类型函数
转换工厂函数工厂函数 | 操作 |
---|---|
bool(obj) | 返回对象的bool值 |
int(obj , base=10) | 返回一个字符串或者数值对象的整形表示 |
long(obj , base=10) | 返回一个字符串或者数据类型的长整表示 |
float(obj) | 返回一个字符串或者数据类型的浮点数表示 |
complex(str)或者complex(real,imag=0.0) | 返回一个字符串的复数表示,或者根据给定的实数返回一个复数 |
函数 | 功能 |
---|---|
abs(num) | 返回num的绝对值 |
coerce(num1,num2) | 将num1和num2转换为同一类型,然后以一个元组的形式返回 |
divmod(num1,num2) | 返回一个元组(num1/num2 , num1%num2) |
pow(num1,num2,mod=1) | 取num1的num2次方,如果提供mod参数,那么结果再对mod进行取余运算 |
round(flt,ndig=1) | 接受一个浮点型flt进行四舍五入,保存ndig小数 |
int(),
round(),
math.floor(),下面列出其不同之处:
函数
int()直接截去小数部分
函数
floor()向下取整
函数
round()四舍五入
仅用于整形的函数
函数 | 操作 |
---|---|
hex(num) | 将数字转换为十六进制数并以字符串形式返回 |
oct(num) | 将数字转换为八进制并以字符串返回 |
chr(num) | 将ASCII值的数字转化为 ASCII字符 |
ord(num) | 接受一个ASCII或者 Unicode(长度为1),返回相应的 ASCII值或者 Unicode值 |
unichr(num) | 接受 Unicode码值,返回对应的 Unicode字符 |
其他数字类型
布尔数
布尔数主要有下面几个值得注意的地方:布尔型是整形的子类,但是不能再被继承
没有
__nonzero__()方法的对象默认值是
True
如果要定义一个心新类,并且想要根据根据对象的数据来决定对应的布尔值,那么就要定义
__nonzero__()方法
class C: def __nonzero__(self): # do some thing return false
十进制浮点数
如果想要使用十进制浮点型,那么就要导入decimal模板以便使用
Decimal类,注意不能混用十进制浮点型和普通浮点型
dec = Decimal(.1)#error dec = Decimal(".1")#ok dec + 0.1 #error dec + Decimal("1.0")#ok
随机数
随机函数 | 产生的随机数 |
---|---|
randint() | 两个整形参数,返回二者之间的随机整数 |
randrange() | 随机返回range([start],stop,[step])结果中的一项 |
uniform() | 和randint()一样,不过返回的是二者之间的浮点型 |
random() | 类似于uniform(),不过下限是 0.0,上限是 1.0 |
choice() | 返回给定序列的一个元素 |
相关文章推荐
- 走进Python世界(五)数据类型 1.数字(Number)
- 走进Python世界(五)数据类型 2. 字符串(String)
- Python的高级特性4:函数式编程
- python 序列
- python正则常用函数
- python for语句
- python下异常处理
- Python map()函数的用法
- python下线程以及锁
- python下yield(生成器)
- python while语句
- python 魔术方法
- Python lambda函数的用法
- python if语句
- Python笔记——break的注意事项
- Python笔记——break的注意事项
- 学习两天python后感
- 如何写出优雅的Python
- python 输出中文乱码问题
- python读取配置文件