Python学习之路10——数字

时间:2022-11-04 22:33:56

1.数字简介

数字提供了标量存储和直接访问。数字是不可更改类型,也就是说变更数字的值会生成新的对象。

Python支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。

可以通过赋值来创建或更新数字对象。

创建数字对象: 如 var = 1

更新数字对象: 如 var += 2

删除数字对象: 如 del var

2.整型

Python有几种整型类型:布尔类型,常规整型,长整型。


布尔型

布尔型的取值范围只有两个值,True和False。


标准整型

在大多数32位机器上,标准整型类型的取值范围是-2^31到2^31-1,也就是-2147483648 ~ 2147483647.如果在64位机器上使用64位编译器编译Python,那么这个系统的整型将是64位。

Python标准类型等价于C的(有符号)长整型。整数可以以十进制,八进制和十六进制来表示。


长整形

必须注意的是:Python长整形不同于C和其他编译型语言的长整型类型。那些语言的长整形的通常的取值范围是32位或64位。Python的长整型能表达的数值仅仅与你支持的(虚拟)内存大小有关,也就是说,Python能轻松表达很大的整型。

长整型类型是标准整型类型的超集,当你的程序需要使用比标准整型更大的整型时,就可以用长整型。在一个整型值后面加个L或l,表示这个整型是长整型。


双精度浮点型

Python中的浮点型类型C语言中的double类型,是双精度浮点型,可以用十进制或科学计数法表示。每个浮点型占8个字节(64位),完全遵守IEEE754号规范,其中52个位用于表示底,11个位用于表示指数,剩下的1位表示符号。


复数

下面是Python语言中有关复数的几个概念。

虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。

复数是实数部分和虚数部分构成。

表示虚数的语法:real+imagj

实数部分和虚数部分都是浮点型。

虚数部分必须有后缀j或J。


复数的内建属性

复数对象拥有数据属性,分别为该复数的实数部分和虚数部分。复数还拥有conjugate方法,调用它可以返回该复数的共轭复数对象。

>>> aComplex = -8.9-1.4j
>>> aComplex
(-8.9-1.4j)
>>> aComplex.real
-8.9
>>> aComplex.imag
-1.4
>>> aComplex.conjugate()
(-8.9+1.4j)


3.操作符

混合模式操作符

两个操作符运算的转换规则:

  • 如果有一个操作数是复数,另一个操作数被转换为浮点型
  • 如果有一个操作数是浮点型,另一个操作数被转换为浮点型
  • 如果有一个操作数是长整型,则另一个操作数被转换为长整型
  • 两者都是普通整型,无需类型转换。

标准类型操作符

> <>= <= ==


算术运算符

+ -* / % **(冥运算)


这些大家都很熟,主要写一下除法

传统除法

如果是整型除法,传统除法会舍去小数部分,返回一个整型(地板除)。如果操作符之一是浮点型,则执行真正的除法。

>>> 6 / 4<span style="white-space:pre"></span>#perform integer result(<span style="color: rgb(43, 43, 43); font-family: arial, sans-serif;  line-height: 27px; background-color: rgb(250, 250, 250);"><strong>执行整数结果</strong></span><span style="color: rgb(43, 43, 43); font-family: arial, sans-serif; font-size: 18px;  line-height: 27px; background-color: rgb(250, 250, 250);"><strong>)</strong></span>
1
>>> 6.0 / 4<span style="white-space:pre"></span>#returns actual quotient(<span style="color: rgb(43, 43, 43); font-family: arial, sans-serif; line-height: 27px; background-color: rgb(250, 250, 250);"><strong>返回实际的商</strong></span><span style="color: rgb(43, 43, 43); font-family: arial, sans-serif; font-size: 18px; line-height: 27px; background-color: rgb(250, 250, 250);"><strong>)</strong></span>
1.5
>>>

真正的除法

除法运算总是返回真实的商,不管操作数是整型还是浮点型。通过执行from __future__ import division

>>> from __future__ import division
>>> 6 / 4
1.5
>>> 6.0 / 4
1.5
>>>


位操作符(整型才有)

~(取反) &(按位与)|(或) ^(异或)<<(左移) >>(右移)

4.内建函数与工厂函数

标准类型函数

cmp(),str(),type()


数字类型函数

int() : 将其他数值类型转换为相应的整型

long() : 将其他数值类型转换为相应的长整型

float() : 将其他数值类型转换为相应的浮点型

complex() : 将其他数值类型转换为相应的复数

>>> int(4.5555)
4
>>> long(442)
442L
>>> float(4)
4.0
>>> complex(2.4, -8)
(2.4-8j)


功能函数

abs(num)返回给定参数的绝对值。如果参数是一个复数,那么就返回math.sqrt(num.real^2 + num.imag^2)

>>> abs(-1)
1
>>> abs(1.2-2.1j)
2.418677324489565
>>>


coerce(num1,num2)将num1和num2转换为同一类型,然后以一个元组的形式返回

>>> coerce(2.1, 211L)
(2.1, 211.0)
>>> coerce(1, 112L)
(1L, 112L)
>>> coerce(1.23-41j, 123L)
((1.23-41j), (123+0j))
>>>


divmod(num1,num2)把除法和取余运算结合起来,返回一个包含商和余数的元组。
>>> divmod(10,3)
(3, 1)
>>> divmod(10, 2.5)
(4.0, 0.0)
>>> divmod(2+1j, 0.5-1j)
((-0+0j), (2+1j))
>>>

pow(num1,num2)返回num1的num2次方。
>>> pow(2,10)
1024
>>> pow(1+1j,3)
(-2+2j)
>>>


round(flt, nig =1)接受一个浮点型flt并对其四舍五入,保存ndig为小数

>>> round(3.45)
3.0
>>> round(3.51)
4.0
>>> round(3.449,1)
3.4
>>> round(3.449,2)
3.45
>>>


仅用于整型的函数

进制转换函数

hex()将十进制转换为十六进制

oct()将十进制转换为八进制

>>> hex(255)
'0xff'
>>> oct(255)
'0377'
>>>

ASCII转换函数

chr()接受一个单字节整型值,返回一个字符串,其值为对应的字符

ord()接受一个字符,返回其对应的整型值。

>>> ord('a')
97
>>> ord('A')
65
>>> chr(97)
'a'
>>> chr(65)
'A'
>>>