Python基础数据类型(一)——数据、数值和布尔类型

本文详细介绍了Python中的数值类型,包括整数(int)、浮点数(float)和复数(complex)。整数包括十进制、八进制、十六进制的表示,并提到了整数对象池和缓冲区的概念。浮点数用于表示小数,可与整数相互转换。复数由实部和虚部构成,可用于复杂数学计算。布尔类型bool只有True和False两个值,常用于条件判断,与and、or、not运算。此外,还介绍了None作为特殊值的用法。
摘要由CSDN通过智能技术生成

1.数据类型

  • 在python这门语言中,数据类型分为两种。 内置的自定义的
  1. 内置的 包括数字、字符串、布尔、列表、元组、字典、Bytes、集合这些常用的以及一些不太常用的数据类型。
  2. 自定义的,一般以类的形式,根据需要组合以上内置类型成为独特的数据类型。
  • 数据类型是Python语言非常重要的部分。

  • 为什么会有数据类型? ( 了解 )

  1. 更好分配管理内存
  2. 方便统一管理
  3. 更贴近人类分类管理习惯

2.数值类型

数值类型

  • 数值类型是计算机程序最常用的一种类型,既可用于记录各种游戏的分数、游戏角色的生命值、伤害值等,也可记录各种物品的价格、数量等。

  • 数值类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。

  • Python的变量和数据类型的关系:变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。
    只有1,[1,2],"hello"这一类对象才具有数据类型的概念。

  • Python 支持三种不同的数值类型,整数、浮点数和复数。

2.1整数 (int)

整数介绍

  • 整数通常被称为整型,数值为正或者负,不带小数点。表示数字的时候,通常使用十进制(decimal)来表示
  • 有时我们还会用八进制或十六进制来表示:
  1. 十六进制用 0x 前缀和 0-9 ,a-f 表示,例如: 0xff00 。 python 中使用 hex() 将十进制转为十六进制
  2. 八进制用 0o 前缀和 0-7 表示,例如 0o45 。 python 中使用 oct() 将十进制转为八进制
  3. 二进制用 0b 前缀和 0-1 表示,例如 0b11 。 python 中使用 bin() 将十进制转为二进制
>>> hex(11)		# 10转16
'0xb'
>>> oct(11)		# 10转8
'0o13'
>>> bin(11)		# 10转2
'0b1011'

整数内存

python的整数长度为32位,并且通常是连续分配内存空间的。

>>> id(-2)
1509059968
>>> id(-1)
1509060000
>>> id(-1)-id(-2)
32

从上面的空间地址看,地址之间正好差32。

小整数对象池

  • python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含262个指向整数对象的指针数组,范围是 -5到256

  • 作用:节省开销,增快运行速度

id(-6)
10114720
id(-5)
496751568
id(255)
496755728

整数缓冲区

除了小整数对象池,Python还有整数缓冲区的概念,也就是刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。

a = 100000
print(id(a))
del a

b = 100000
print(id(b))

3028842491600
3028842491600

先给变量a赋值了整数100000,看了一下它的内存地址。然后我把a删了,又创建个新变量b,依然赋值为100000,再次看下b的内存地址,和以前a存在的是一样的。

2.2浮点数(float)

浮点数介绍

浮点数也就是小数,如1.23,3.14,-9.01等等。但是对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5等等。

浮点数与整数之间的转换

>>> a = 1
>>> float(a)    # 整数转为浮点
1.0
>>> b = 2.2
>>> int(b)      # 浮点转为整数
2

2.3复数(complex)

复数的介绍

复数由实数部分和虚数部分构成,可以用a + bj , 或者complex(a,b)表示,
复数的实部a和虚部b都是浮点。

复数的创建

>>> a = 1
>>> b = 2
>>> complex(a,b)    # a为实数部分,b为虚数部分 
(1+2j)

数学计算

对于数学计算,除了前面提到过的简单的加减乘除等等,更多的科学计算需要导入math这个库,它包含了绝大多数我们可能需要的科学计算函数,如下表

ceil(x)                 返回数字的上入整数,如math.ceil(4.1) 返回 5
exp(x)                  返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)                 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)                返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)                  如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)                返回以10为基数的x的对数,如math.log10(100)返回 2.0
modf(x)                 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)               x**y 运算后的值。
sqrt(x)                 返回数字x的平方根
acos(x)                 返回x的反余弦弧度值。
asin(x)                 返回x的反正弦弧度值。
atan(x)                 返回x的反正切弧度值。
atan2(y, x)             返回给定的 X 及 Y 坐标值的反正切值。
cos(x)                  返回x的弧度的余弦值。
hypot(x, y)             返回欧几里德范数 sqrt(xx + yy)
sin(x)                  返回的x弧度的正弦值。
tan(x)                  返回x弧度的正切值。
degrees(x)              将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)              将角度转换为弧度
应用举例:
import math
math.ceil(4.1)  # 5 向上取整
math.floor(4.5) # 4 向下取整
math.pow(2,3)   # 8.0 2的三次方
常用python内置函数:
max(x1, x2,...)         返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)         返回给定参数的最小值,参数可以为序列。
abs(x)                  返回数字的绝对值,如abs(-10) 返回 10round(x [,n])           返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

应用举例:

import math
math.ceil(4.1)  # 5 向上取整
math.floor(4.5) # 4 向下取整
math.pow(2,3)   # 8.0 2的三次方

常用python内置函数:

max(x1, x2,...)         返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)         返回给定参数的最小值,参数可以为序列。
abs(x)                  返回数字的绝对值,如abs(-10) 返回 10round(x [,n])           返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

3.布尔类型

布尔类型(bool)

布尔类型介绍

  • 对于错、0和1、正与反,都是传统意义上的布尔类型。
  • 但在Python语言中,布尔类型只有两个值,TrueFalse。注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型。
  • 布尔值通常用来判断条件是否成立。 例如:
a = 2
if a > 5:
    print("a是一个大于5的数字")
else:
    print("a不是一个大于5的数字")

bool()使用

Python内置的bool()函数可以用来测试一个表达式的布尔值结果。

>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(-1)
True
>>> bool('')
False
>>> bool("False")
True
>>> bool("True")
True
>>> bool(0.0)
False
>>> bool(1.0)
True
>>> bool(-0.0)
False

总而言之,0、0.0、-0.0、空字符串、空列表、空元组、空字典,这些都被判定为False;而-1、"False"被判断为True。

布尔类型运算

  • and运算是与运算,只有所有都为True,and运算的结果才是True:
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True
  • or运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True
  • not运算是非运算,它是单目运算符,把True变成False,False变成True:
>>> not True
False
>>> not False
True
>>> not 1 > 2
True
  • 在做四则运算的时候,把True看做1,False看做0。
>>> True > False
True
>>> True < False
False
>>> True >=False
True
>>> True -1
0
>>> True + 1
2
>>> True *3
3
>>> False -1
-1

空值

  • 空值不是布尔类型,但是和布尔关系比较紧密。
  • 空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。
>>> bool(None)      # None的bool值永远为False
False
>>> type(None)
<class 'NoneType'>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值