Python成为专业人士笔记–python的数据类型详解

“专业人士笔记”系列目录:

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!

内置数据类型:

bool类型值

俗称布尔值,只有真(True)或假(False)两个值, 像and、or、not这样的逻辑操作可以在布尔值上执行

         x or y  #如果X和y中有一个是True,则整体是True
 x and y #只有x和y 都为True的时候,整体才是True
 not x # x是False的时候,整体是True
      

在Python中2和python3中,bool类型是int类型的一个子类,True和False是它唯一的实例

如果在算术运算中使用布尔值,它们的整数值(True为1,False为0)将被用来返回整数结果

比如:

         True + False==1   # 类似 1 + 0 == 1
 True * True==1  # 类似 1 * 1 == 1 
 
      

Numbers 数值类型

1、int 整数型

        a =2  #给整数赋值
b =100 
      

Python中的整数是任意大小的; 注意: 在旧版本的Python中,long类型是可用的,这与int不同,两者是统一的

2、float 浮点小数型

支持e这样的科学计数法

        a =2.0
b =100.e0
c =123456789.e1 
      

3、 complex 复数

        a =2 + 1j
b =100 + 10j 
      

注意:当任何操作数是复数时,操作符<、<=、>和>=将引发类型错误异常

4、 Strings 字符串类型

a) str类型: 一个unicode字符串,值为“hello”的类型

b) byte类型:字节字符串,值为b’hello’的类型;注意字串前面有一个字母’b’

序列和集合 数据类型

Python区分有序序列和无序集合(如set和dict):

1、有序序列

a)字符串(str,byte,unicode)是有序序列 ,如用 reversed函数将字符串反转排序后,和之前的值完全不一样

b) tuple元组: 任何类型的n个值的有序集合(n >=0)

如:a =(1,2,3) 和 b=(2,1,3)是两个不一样的元组

c)list列表: n个值的有序列表

如 a=[1,2,3]和b=[1,2,3]是两个不一样的列表


2、无序集合

a) set 集合:无序的值集合(不能有重复值)

如: a ={1,2,’a’} ,和 b={‘a’,2,1}是一样的集合,且集合中不可能有同一个值出现2次

b) dict 字典: 唯一键值对的无序集合

如: g ={‘a’: ‘1’,’b’:’2′} 存储的是键值对,访问方式是: print(g[“a’]),会输出值1

内建常量

与内置的数据类型一起,在内置的命名空间中有少量的内置常量
True:内置类型的布尔值的真值
False:内置类型的布尔值的假值
None:用于表示不存在的单例对象或空值
Ellipsis 或…:在核心Python3 +中不受限制地使用,在Python2.7 +中作为数组表示法的一部分受到限制使用。numpy和相关软件包将其用作数组中的“包括所有内容”引用
NotImplemented: 用于向Python表明某个特殊方法不支持特定参数,如果启用,Python将尝试替代方法

验证变量的类型

在python中,我们可以使用内置的函数类型检查对象的数据类型

        a ='123'
print(type(a))
# 输出: <class 'str'>

b =123
print(type(b))
# 输出: <class 'int'>

      

可以使用isinstance返回数据类型,通常用在条件if语句判断中:

        i =7
if isinstance(i,int):
    i +=1
elif isinstance(i,str):
    i =int(i)
    i +=1 

#判断如果是整数int类型则+1,是字符串str类型则先转为int型再+1
      

判断变量是否为None的数据类型,稍微有点特殊,如下:

        x =None
if x is None:
   print('数据类型是None') 
      

变量的类型转化

可以执行显式数据类型转换。例如,’123’是str类型的,它可以使用int函数转换为整数。

        a ='123'
b =int(a) 
      

可以使用float函数从浮点字符串(如’123.456′)进行转换

        a ='123.456'
b =float(a)  
      

还可以转换序列或集合类型

        a ='hello'
list(a)
# ['h', 'e', 'l', 'l', 'o']

set(a)
# {'o', 'e', 'l', 'h'}

tuple(a)
# ('h', 'e', 'l', 'l', 'o')
 
      

在定义变量时可显式的指定string字串的子类型

可以 在引号前面加一个字母标签,定义具体是什么类型的字符串

b’foo bar’: 在python3中返回 byte型,在python2中返回 str 型

u’foo bar’ : 在python3中返回 str型,在python2中返回 unicode 型

‘foo bar’ : 都返回 str型

r’foo bar’: 原始字符串,其中无需转义特殊字符,键入时一切都按原样

可变和不可变的数据类型

如果一个对象可以改变值,那么它就叫做可变数据类型。

例如,当你将一个列表传递给某个函数时,该列表可以被函数内的代码改变

         def f(m):
    m.append(3) #  向列表中添加一个数字。这是一个修改.
 x = [1, 2]
 f(x)
 x == [1, 2] #  现在为False,因为列表中添加了一个项 
      

如果对象不能以任何方式更改,则称其为不可变的。例如,整数是不可变的,因为没有办法改变它们

        def bar():
   x = (1, 2)
   g(x)
   x == (1, 2) #  总是返回真 True,因为没有函数可以改变对象  (1, 2)
      

注意,变量本身是可变的,所以我们可以重新分配变量x,但这不会改变x之前指向的对象。它只是让x指向了一个新对象。

实例是可变的数据类型称为可变数据类型,对于不可变对象和数据类型也是如此

不可变数据类型的例子
int, long, float, complex
str
bytes
tuple
frozenset


可变数据类型的例子
bytearray
list
set
dict

关于python数据类型分享到这里,转载请注明出处,违者必究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值