IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 3 学习笔记:数字(Number) -> 正文阅读

[Python知识库]Python 3 学习笔记:数字(Number)

目录

数字类型

int

float

complex

数字类型转换

转换成 int

转化成 float

转化为 complex

数字运算

算数运算符

赋值运算符

比较运算符

位运算符

逻辑运算符

成员运算符?

身份运算符

运算符优先级

数学函数

内置函数

math 模块


数字类型

数字 (Number) 由数字文字 (Numeric literals) 创建,或作为内置函数和运算符的结果创建。Python 支持三种不同的数字类型 (Numeric Types):int,?float,?complex

另外,fractions?模块包括额外的数字类型 fractions.Fraction,提供对有理数算术的支持。decimal?模块包括额外的数字类型 decimal.Decimal,用于具有用户可定义精度的浮点数。

int

整数,也可称为整型,可以用十进制、八进制、十六进制表示。py3 的整型 int 相当于 py2 的长整型 long,可以存放任意大小的整数,不存在溢出问题,所以 py3 不再有?long 类型。

bool(布尔)是 int 的子类型。

>>> num = 255    # Decimal
>>> num
255

>>> num = 0o255   # Oct
>>> num
173

>>> num = 0x255 # Hex
>>> num
597

>>> num = True  # bool
>>> num
True

float

浮点数,或叫浮点型,由整数和小数部分组成,也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2?= 250)

Python 的浮点数通常使用C语言中的 double 实现。

sys.float_info 提供了机器浮点数的精度和内部表示的信息。

>>> num = 2.55
>>> num
2.55

>>> num = -2.55e10
>>> num
-25500000000.0

>>> import sys
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

complex

复数,由实部和虚部构成,表示为 a + bj,或 complex(a,b) , 实部a和虚部b都是浮点数。要从复数 z 中提取实部和虚部,可以使用 z.real 和 z.imag。

>>> z = 2 + 3j
>>> z.real
2.0
>>> z.imag
3.0

数字类型转换

构造函数?int(),?float(), complex()?可用于生成特定类型的数字。

转换成 int

class?int([x])?返回由数字或字符串 x 构造的整数对象,如果没有给出参数,则返回 0。

class?int(x,?base=10)?如果 x 不是数字或给定了 base,那么?x 必须是字符串、字节或字节数组对象,表示以 base 为基数的整数。base 表示进制,可以是2, 8, 10, 16。

>>> int()
0
>>> int(2.22)    # float -> int
2
>>> int('10')  # str -> int (base=10)
10
>>> int('10', 16)  # str -> int (base=16)
16

转化成 float

class?float([x]) 返回由数字或字符串 x 构造的浮点数。参数也可以是表示 NaN(非数字)或正负无穷大的字符串。

>>> float(2)
2.0
>>> float('2.22')
2.22
>>> float('nan')   # not-a-number
nan
>>> float('inf')   # positive infinity
inf
>>> float('-inf')  # negative infinity
-inf

转化为 complex

class?complex([real[,?imag]])?返回值为 real + imag*1j 的复数或将字符串或数字转换为复数。如果第一个参数是一个字符串,它将被解释为一个复数,并且必须在没有第二个参数的情况下调用该函数。

>>> complex(2, 3)
(2+3j)
>>> complex('2+3j')  # the string must not contain whitespace around the central + or - operator
(2+3j)
>>> complex(2+3j)
(2+3j)

数字运算

python 解释器可以充当一个简单计算器,它会根据输入的表达式,输出对应的值。

>>> 1 + 1
2
>>> 2 + 2 * 2
6
>>> (2 + 2) * 2
8
>>> 6 / 2 # classic division returns a float
3.0
>>> 6 // 2 # floor division discards the fractional part
3
>>> 5 ** 2  # 5 squared
25
>>> 2 ** 7  # 2 to the power of 7
128

在交互模式下,若没有为表达式赋值,那么输出的结果会被分配给变量 _,这样继续计算会更容易些,例如:

>>> 2 + 2
4
>>> _ * 2
8

python 文档中关于变量_的注意点:

This variable should be treated as read-only by the user. Don’t explicitly assign a value to it — you would create an independent local variable with the same name masking the built-in variable with its magic behavior.

直译:用户应将此变量视为只读。不要显式地给它赋值——你会创建一个同名的独立局部变量,用它的魔法行为屏蔽内置变量。?

不信?试试:

>>> _ = 5
>>> 2 + 2
4
>>> _ * 2
10

算数运算符

运算符描述

表达式

(a = 9,b = 2)

运算结果
+a + b11
-a - b7
*a * b18
/a / b4.5
%取余a % b1
**a ** b81
//取整除(Floor)a // b

4

注意:

  1. 不同类型的数混合运算时,会将整数转化为浮点数,结果也是浮点数。
  2. 与 py2 不同,py3 中对任何类型的操作数进行除法 / 运算,结果都是浮点数,即使整除,结果也会是浮点数。如果想丢弃小数部分,可以使用 // 运算符(floor division)。

  3. // 运算中只是丢弃小数部分,并不是说一定返回整数,结合第1点,如果操作数是浮点数,那么结果也会是浮点数,只是丢弃了小数部分,比如 9 // 2 = 4,9.0 // 2 = 4.0。

赋值运算符

运算符描述

表达式

(a = 9,b = 2, c = 10)

c
=赋值c = a + b11
+=加法赋值c += a 等效于 c = c + a19
-=减法赋值c -= a?等效于 c = c - a1
*=乘法赋值c *= a?等效于 c = c * a90
/=除法赋值c /= a?等效于 c = c / a1.1111111111111112
%=取模赋值

c %= a?等效于 c = c % a

1
**=幂赋值c **= a?等效于 c = c ** a1000000000
//=取整除赋值c //= a?等效于 c = c // a1

比较运算符

运算符描述

表达式

(a = 9,b = 2)

运算结果
==等于a == bFalse
!=不等于a != bTrue
>大于a > bTrue
<小于a < bFalse
>=大于等于a >= bTrue
<=小于等于a <= bFalse

位运算符

位运算是将两个数字按二进制位进行运算。

运算符描述
&与:两位同时为1,结果才为1,否则为0
|或:两位有一个为1,结果则为1
^异或:两位不相同,结果为1
~取反:对数据的每个二进制位取反
<<左移:运算数的各二进位全部左移若干位,<<?右边的数字指定移动的位数,高位丢弃,低位补0
>>右移:运算数的各二进位全部右移若干位,>> 右边的数字指定移动的位数,高位补0,低位丢弃

例如变量?a = 9,b = 2:

二进制十进制
a

1001

9
b00102
a & b00000
a | b101111
a ^ b101111
~a

1111 0110

-10
a << b0010 010036
a >> b00102

逻辑运算符

逻辑运算符一般操作的是?bool 类型。

运算符描述

表达式

(a = True,b = False)

结果
and逻辑与:两个条件都满足时,结果为 Truea and bFalse
or逻辑或:两个条件中任一个满足时,结果为 Truea or bTrue
not逻辑非not aFalse

成员运算符?

运算符

表达式

(a = 2,b = [2, 3])

描述结果
ina in b如果对象b包含对象a,返回True,否则返回FalseTrue
not ina not in b如果对象b不包含对象a,返回True,否则返回FalseFalse

身份运算符

运算符描述
is如果两个变量引用自同一个对象,返回True,否则返回False。
is not如果两个变量引用的不是同一个对象,返回True,否则返回False

注意:is 和 == 不一样,a is b 类似于 id(a) == id(b),用于判断两个变量是否引用自同一个对象,而 == 用于判断两个变量的值是否相等。

is 其实就相当于C语言中的指针比较:"(void*) &a == (void*) &b"。

在 python 中,一切都是有地址的对象,包括数字,而数字是不可变数据类型,这意味着改变变量存储的数值时,不是在已有的内存上做修改,而是为新的数字重新分配内存空间。如下,id() 函数可以获取对象的内存地址,两次给 num 赋值后,num 指向的内存地址发生了变化。

>>> num = 22
>>> id(num)
2009505950672
>>> num = 33
>>> id(num)
2009505951024

运算符优先级

以下按优先级由高到低列出:

运算符描述
**算数运算符:指数
~ + -位运算符:取反、一元加(正)、一元减(负)
* / % //算数运算符:乘、除、求余、取整除
+ -算数运算符:加、减
>> <<位运算符:右移,左移
&位运算符:与
^ |位运算符:异或、或
<= < > >=比较运算符
== !=比较运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

?记不清楚不要紧,我们可以用括号用来分组,这样代码可读性也更高。

>>> 1 + 2 << 3
24
>>> (1 + 2) << 3
24

数学函数

内置函数

python 内置函数一览表:Built-in Functions,其中与数学有关的有:

函数描述实例
abs(x)返回 x 的绝对值abs(-2) 返回 2,? abs(-2.0) 返回 2.0
max(x1,x2,...)返回给定参数的最大值max(1, 2) 返回2,max(1, 2, 3) 返回3
min(x1,x2,...)返回给定参数的最小值min(1, 2) 返回1,min(1, 2, 3) 返回1
oct(x)将 x 转换为以“0o”为前缀的八进制字符串oct(10) 返回?'0o12'
pow(base, exp)等效于使用幂运算符:base**exp。?pow(2, 3) 返回 8
round(x[, ndigits])返回浮点数x四舍五入的值,若给出ndigits,则四舍五入到 ndigits 精度

round(5.555) 返回 6

round(5.555, 1) 返回 5.6

sum(iterable, /, start=0)从 start 开始对?iterable 的各项求和并返回总数sum((1, 2, 3)) 返回 6

math 模块

python 中数学运算常用的函数基本都在?math?模块中。math 模块中的函数不能用于复数,如需支持复数,可使用 cmath 模块中的同名函数。

查看 math 模块的内容:

>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
>>> help(math)

欢迎关注我的知乎?安暖 - 知乎 (zhihu.com),你问,我必答😎?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 21:58:41  更:2021-07-16 21:58:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:19:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计