Python基本类型详解与应用场景(2)-- 数字

背景

对于很多 Python 初学者来说,搞懂我们每个数据的结构与作用是一件非常困难的事。

因此了解我们程序中各个基本类型的结构,表现方式,使用方法与应用是一件非常有必要的事。本文致力通过简单明了的语言来阐述基本类型数字的相关信息

介绍

数字又称Number,是 Python 中最常见的基本类型之一,在 python,数字类型有以下三种

  • 整数(int) 通常被称为整型数或整数,由正整数,零和负整数组成
  • 浮点数(float) 通常由整数部分和小数部分组成,同时也可以使用科学计数法表示
  • 复数(complex) 复数由实数部分和虚数部分组成

整数

和数学中的整数概念一样,我们python中的整数是由正整数,零和负整数组成的集合,用integer的简写int表示。与此同时整数有四种进制表现方式二进制八进制十进制十六进制,如下表所示

进制 引导符 描述 备注
二进制 0b或0B 由字符0和1组成的一串数字 2 -> 0b10
八进制 0o或0O 由字符0到7组成的一串数字 9 - > 0o11
十进制 由字符0到9组成的一串数字
十六进制 0x或0X 由字符0到9,a到f(不分大小写)组成 15 -> 0xf

与其它计算机语言不同,在 python 中整数的取值范围没有限制,仅受限于计算机的内存大小

进制转换

二进制 八进制 十进制 十六进制
二进制 - bin(x, 8) bin(x, 10) bin(x, 16)
八进制 otc(x, 2) - otc(x, 10) otc(x, 16)
十进制 int(x, 2) int(x, 8) - int(x, 16)
十六进制 hex(x, 2) hex(x, 8) hex(x, 10) -

整数的创建

python中使用int()可以创建一个值为0的整数,我们也可以在等号右边直接输入0到9任意的数字组合即可赋值整数给变量,如下方代码所示

num = int()
print(num)
print(type(num))

# 输出:
# 0
# <class 'int'>

num = 10
print(num)
print(type(num))

# 输出:
# 10
# <class 'int'>

浮点数

python中浮点数和数学中的小数是同一种东西,用float表示,浮点数有两种赋值方法:正常小数赋值和科学技术法赋值。如下方代码所示

# 正常小数赋值
num = 0.0006606
print(num)
print(type(num))

# 输出:
# 0.0006606
# <class 'float'>


# 科学计数法赋值
num = 6.606e-4
print(num)
print(type(num))

# 输出:
# 0.0006606
# <class 'float'>

需要注意,在python浮点数是有精度的,且通常精度有损失,这是由于浮点数是使用二进制计算导致的。如下方代码所示

print(0.3-0.2)
print(0.3-0.2==0.1)

# 输出:
# 0.09999999999999998
# False

如果读者对于python的精度损失感到好奇的话,可以阅读文章:

Python浮点数误差与解决方法

复数

同整数浮点数一样,python中复数也与数学中的复数概念一致,用英文complex表示。与数学中不同的是,数学中虚部用字母i表示,而python中虚部用字母jJ表示。如下方代码所示

num = 1 + 2j
print(num)
print(type(num))

# 输出:
# (1+2j)
# <class 'complex'>

注:复数的实部和虚部都是由浮点数组成的

获取实部

复数可以通过complex.real获取它的实部,如下方代码所示

num = 1 + 2j
print(num.real)

# 输出:
# 1.0

获取虚部

复数可以通过complex.imag获取它的虚部,如下方代码缩回

num = 1 + 2j
print(num.imag)

# 输出:
# 2.0

数字类型转换

有些时候我们会遇到数字是不同类型的情况,我们需要将它们转换成一致的类型才能更好的计算,python 为我们提供了如下几种方法来进行类型转换

  • int(x),将x转换为一个整数(x为字符串整数或其他类型的数字)
num1 = 1.2
num2 = int(num1)
print(num2)
print(type(num2))

# 输出:
# 1
# <class 'int'>
  • float(x),将x转换为一个浮点数
num1 = 1
num2 = float(num1)
print(num2)
print(type(num2))

# 输出:
# 1.0
# <class 'float'>
  • complex(x),将x转换到一个复数,实数部分为x,虚数部分为0
num1 = 1
num2 = complex(num1)
print(num2)
print(type(num2))

# 输出:
# (1+0j)
# <class 'complex'>
  • complex(x, y),将x和y转换到一个复数,实数部分为x,虚数为y
num1 = 1
num2 = 2
num3 = complex(num1, num2)
print(num3)
print(type(num3))

# 输出:
# (1+2j)
# <class 'complex'>

运算

在python中你可以使用数字进行各种数学运算,加法+,减法-,乘法*,除法/

基础运算符

运算符 描述 举例
+ 加号 >>> print(1 + 2)
3
- 减号 >>> print(3 - 1)
2
* 乘号 >>> print(2 * 3)
6
/ 除号 >>> print(4 / 2)
2
// 地板除(无论结果是否有小数,总是返回整数部分) >>> print(7 // 3)
2
% 取余 >>> print(7 / 3)
1
** 幂运算(即次方) >>> print(2 ** 3)
8

赋值运算符

运算符 描述 举例
+= 加赋值 x += y
等价于
x = x + y
-= 减赋值 x -= y
等价于
x = x - y
*= 乘赋值 x *= y
等价于
x = x * y
/= 除赋值 x /= y
等价于
x = x / y
%= 余赋值 x %= y
等价于
x = x % y
**= 幂赋值 x **= y
等价于
x = x ** y

位运算符

运算符 描述 举例
& 按位与 >>> print(4 & 5)
4
| 按位或 >>> print(4 | 5)
5
^ 按位异或 >>> print(4 ^ 5)
1
~ 按位取反 >>> print(~5)
-6
<< 按位左移 >>> print(4 << 5)
128
>> 按位右移 >>> print(4 >> 5)
0

比较运算符

比较运算符用来判断布尔值,根据条件满足与否返回TrueFalse

运算符 描述 举例
> 大于 >>> print(2 > 3)
False
< 小于 >>> print(2 < 3)
True
>= 大于等于 >>> print(2 >= 3)
False
<= 小于等于 >>> print(2 <= 3)
True
== 全等于 >>> print(2 == 3)
False
!= 不等于 >>> print(2 != 3)
True

逻辑运算符

运算符 描述 举例
and 逻辑与运算,等价于数学中的且 >>> print(1 and False)
False
or 逻辑或运算,等价于数学中的或 >>> print(1 or False)
True
not 逻辑非运算,等价于数学中的非 >>> print(not False)
True

猜你喜欢

转载自blog.csdn.net/a914541185/article/details/124558525