【转】Python数据类型之“数字(numerics)”

【转】Python数据类型之“数字(numerics)”

上一节内容说的是“Python基本语法”,本节主要讲下Python中的数据类型。

存储在内存中的数据通常有两个属性:

  • 在内存中的存放位置:这个存放位置通过变量名可以找到;
  • 在内存中的存放方式:这个由数据类型决定,如占几个字节的空间、占用空间是否需要连续等。

Python中有很多内置类型(built-in types),内置类型可以理解为构建在Python Interpreter(Python解释器)里面的类型。Python中主要的内置类型有以下几种:

  • numerics(数字):int、float、complex、bool
  • sequences(序列/有序集合): str、list、tuple、range
  • sets(无序集合):set
  • mappings(映射):dict
  • classes(类)
  • instance(实例)
  • exceptions(异常)

我们主要说下numberics、sequences、sets 和 mappings这四种内置数据类型。为了避免篇幅过长,我们将对它们分别进行说明。

数字类型(numerics)



Python3 中的数字支持int(整型)、float(浮点型)、complex(复数)。Python文档中bool(布尔值)不属于数字类型,但是这里也把bool类型放在这里来说,因为bool是int的子类。就像大多是语言一样,Python中的数据类型也是很直观的。我们通过Python内置的type()函数可以查看变量所致的对象类型:

a = 10  # 整型
b = 1.5  # 浮点型
c = True  # 布尔型
d = 5+2j  # 复数

# 也可以同时给多个变量赋值
# a, b, c, d = 10, 1.5, True, 5+2j

print(type(a), type(b), type(c), type(d))

输出结果:

<class ‘int‘> <class ‘float‘> <class ‘bool‘> <class ‘complex‘>

说明

Python2 中的数字类型还包括一个long(长整型),且会自动将超过整型长度的数字转换为长整型(数字最后加上L字母表示长整形)。但是Python3中已经没有long类型了,int和long都叫整型(int)。

bool(布尔型)之所以属于数字类型,是因为bool是int的子类。

1. 强制类型转换

顾名思义,强制类型转换就是把一个数据类型强制转换为另一数据类型。这里,我们先说下数字类型(int、float、bool、complex)间的相互转换。

int与bool类型

在Python解释器的交互式终端通过help(bool)可以查看bool类的完整定义,会发现bool是int类型的子类。另外bool类型只有两个值:True和False,因此bool与int类型的值必然存在某种关联。

>>> int(True)
1
>>> int(False)
0
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0)
False

结论:

  • bool 转 int时, Ture->1, False->0
  • int 转 bool时, 非0->True, 0->False

int、bool与float类型

bool类型可以看作一个特殊的int类型

>>> float(5)
5.0
>>> float(True)
1.0
>>> float(False)
0.0
>>> int(5.0)
5
>>> bool(5.0)
True
>>> bool(0.0)
False

int、bool、float与complex

>>> complex(5)
(5+0j)
>>> complex(5.0)
(5+0j)
>>> complex(True)
(1+0j)
>>> complex(False)
0j
>>> bool((5+0j))
True
>>> bool((0+0j))
False
>>> int((5+0j))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can‘t convert complex to int
>>> float((5+0j))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can‘t convert complex to float

结论:complex类型 不能强制转换为 int 和 float类型

2. 自动类型转换

自动类型转换是指两个不同类型的操作数参与运算时,Python会先按照以下规则先对其中一个操作数进行自动类型转换,然后再进行运算。

  • 如果有一个操作数是复数,另一个操作数会被转换为复数
  • 否则,如果有一个操作数是浮点型,另一个操作数会被转换为浮点型
  • (Python 2)否则,如果有一个操作数是长整形,另一个操作数会被转换为长整型
  • 否则,如果有一个是整型,另一个是布尔型,则布尔型会被转换为整型0或1
  • 否则,两个都是相同数据类型,无需类型转换
>>> 2 + (5+2j)  # 整型转复数
(7+2j)
>>> 2.0 + (5+2j)  # 浮点型转复数
(7+2j)
>>> True + (5+2j)  # 布尔型转复数
(6+2j)
>>> 2 + 5.0  # 整型转浮点型
7.0
>>> True + 5.0  # 布尔型转浮点型
6.0
>>> True + 2  # 布尔型转整型
3

原文地址:https://www.cnblogs.com/langqi250/p/9651853.html

时间: 2024-08-08 05:25:13

【转】Python数据类型之“数字(numerics)”的相关文章

云计算开发教程:Python数据类型之数字

今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python数据类型之数字. 变量是存储在内存中的值,也就是说在创建变量时会在内存中开辟一个空间. 计算机是用来辅助人类的,在程序设计中也映射了显示世界的分类,以便于抽象的分析. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符 PYTHON有五个标准的数据类型:Numbers(数字) String(字符串) List(列表) Tuple(元组

python 数据类型之数字

一.数字类型 Python 支持多种数字类型,包括:整型.长整型.布尔型.双精度浮点型.十进制浮点型. 复数. 1.整型:最通用的数字类型,在32位机上,范围 -2147483648 - 2147483647 (即 -231 - 231-1 ) 2.布尔型:只有两个取值,True 和 False 3.长整型: 用大写字母 "L" 表示  (整型和长整形统一,当数值大写超出整型的范围时,不再溢出,而是自动转化为长整形) 4.双精度: 类似C中的double,可以十进制或者科学计数法表示,

Python数据类型(数字和字符串)

1. 数据类型 1.1 Number(数字) Python可以处理任意大的整数,包括负整数. 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的.,比如,\(1.23\times10^9\) 和 \(12.3\times10^8\)是完全相等的. 整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差. 1.2 String(字符串) 字符串就是一系列字符.在Python中,

python 数据类型: 数字Nubmer / 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

#python中标准数据类型 数字Nubmer 字符串String 列表List 元组Tuple 集合Set 字典Dictionary #单个变量赋值countn00 = '10'; #整数countn01 = '100.0' #浮点countn02 = "双权"; #字符串countn03 = '10'; #数字#print("整数 = "+countn00,"浮点 = "+countn01,"字符串 = "+countn0

Python数据类型-2 数字类型

数字类型 数字类型是不可变类型.所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象.数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象. 还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号.名字.调用等等,变量本身没有数据类型的概念 .只有1,[1,2],"hello"这一类对象才具有数据类型的概念. Python 支持三种不同的数字类型,整数.浮点数和复数. 整数 通常被称为整型,数值为正或者负,不带

Python 数据类型 之 数字类型

python的数字类型有:int,long,float,complex,bool (0:False, 1:True) Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的.对于

Python数据类型之数字

数字(数值) 整数 :123 (int型) 浮点数: 0.25(带小数点的数字即为浮点数,Float型) 布尔值:False,True(即0和1,bool型) 复数 (暂无资料,complex型) 整数的计算 在Python中,可对整数执行加(+),减(-),乘(*),除(/)的运算. 加法 坑* print(0.1+0.2) >>> 0.30000000000000004 #书上看的,暂时无解 减法 有一种减法输出结果为-0.忘了在什么情况下发生的了. 乘法 一个*代表乘法运算,整数乘

以写代学:python 数据类型之数字,标准类型函数

标准类型函数 (1)cmp(num1,num2):比较两个数的大小,第一个数大返回正值,反之负值,相等为0,要是比较字符串,比较的是第一个字符,而且是根据字母对应的ascll码决定的 (2)abs(num):返回给定参数的绝对值 (3)divmod(num1,num2):把除法和取余运算结合起来,返回一个包含商和余数的元组 (4)pow(num1,num2):进行指数运算 (5)round(num.0 / num,保留位数):四舍五入,最后一位为保留的位数 (6)仅用于整数的函数 hex():转

以写代学:python 数据类型之数字,可用函数

(1)list函数,可以把迭代对象转换为列表 (2)str函数,把obj对象转换为字符串 (3)tuple函数,把一个可迭代对象转换成一个元组对象 (4)len函数,返回seq的长度 (5)max函数,取最大值 (6)min函数,取最小值 (7)enumerate函数,接受一个可迭代对象作为参数,返回一个enumerate对象 (8) sorted(iter)函数,排序,默认升序,本身并不改变 (9)reversed函数,翻转,interator都可以迭代,要想获得里边的值需要遍历输出