python基本数据类型

本文详细介绍了Python的基本数据类型,包括非组合数据类型(数字、字符串)和组合数据类型(集合、序列类型——列表、元组和字典)。通过实例演示,展示了如何使用和操作这些数据类型,以及它们在实际编程中的应用场景。
摘要由CSDN通过智能技术生成

学习任何一门语言,了解基本数据类型都是最重要的,因为再复杂的语法都是通过基本数据类型构构造出来的,所以了解基本的数据类型是重中之重,本文主要参考了网络一些文章,重点在于讲清楚python的各种基本类型的分类和使用方法,Python基本数据类型一般分为:

      非组合数据类型:数字、字符串

      组合数据类型:集合 、序列类型(列表、元组)、字典。掌握序列类型,可以应对绝大多数组合数据类型的应用场景。

技巧:

       可以使用type(x),去得到变量x的类型。例如:

>>> de = {}; type(de)
<class 'dict'>

非组合数据类型
数字
数字类型是不可更改的对象。对变量改变数字值就是 生成/创建 新的对象。Python支持多种数字类型:整形(标准整形和长整形(Python2.7 及之前的有这种类型))、布尔型、双精度浮点型、十进制浮点型、复数。

1)标准整形:

       int,标准整形,在大多数32位机器上标准整形取值范围是-2^31到2^31-1,也就是-2147483648~2147483647,如果在64位机器使用64位编译器,那么这个系统的标准整形将是64位。

2)布尔型

    python 提供了 bool 类型来表示真(对)或假(错),比如常见的5 > 3比较算式,这个是正确的,在程序世界里称之为真(对),Python 使用 True 来代表;再比如4 > 20比较算式,这个是错误的,在程序世界里称之为假(错),Python 使用 False 来代表。True 和 False 是 Python 中的关键字,当作为 Python 代码输入时,一定要注意字母的大小写,否则解释器会报错。布尔类型可以当做整数来对待,即 True 相当于整数值 1,False 相当于整数值 0 。

3)浮点型

       float,每个浮点型占8个字节(64位),完全遵守IEEE754号规范(52M/11E/1S),其中52个位用于表示底,11个位用于表示指数(可表示的范围大约是±10**308.25),剩下的一个位表示符号。这看上去相当完美,然而,实际精度依赖于机器架构和创建Python解释器的编译器。

       浮点型值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以正(+)或负(-)表示指数的正负(正数的话可以省略符号)。

4)复数

    复数(Complex)是 python的内置类型,直接书写即可。换句话说,Python 语言本身就支持复数,而不依赖于标准库或者第三方库。复数由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以j或者J作为后缀,具体格式为:a + bj,其中a 表示实部,b 表示虚部。


字符串
字符串(string)是不可变类型,就是说改变一个字符串需要新建一个新的字符串。字符串是由独立的字符组成的,并且这些字符可以通过切片操作顺序地访问。Python里面通过在引号间包含字符的方式创建字符串,单引号和双引号的作用是相同的。
Python用“原始字符串”操作符来创建直接量字符串,所以再做区分就没什么意义了。其他的语言,比如C语言里面用单引号来表示单个字符,双引号标示字符串,而在Python里面没有字符这个类型。这可能是双引号和单引号在Python里面被视作一样的另一个原因。
        Python实际上有三类字符串。通常意义的字符串(str)和Unicode字符串(unicode)实际上都是抽象类basestring的子类。这个basestring是不能实例化的。

组合数据类型:
集合     
      集合最早出现在Python2.3版本中,通过集合模块来创建,并通过ImmutableSet类和Set类进行访问。

      集合元素的满足下列3个条件:

             无序性
             唯一性(自动去重特性)
             不可更改性,不能是可变数据类型,比如列表。


      集合有两种不同的类型,可变集合(set)和不可变集合(frozenset)。

              可变集合,你可以添加和删除元素。对不可变集合则不允许这样做。请注意,可变集合不是可哈希的,因此既不能用作字典的键,也不能做其他集合中的元素。

              不可变集合则正好相反,即,它们有哈希值,能被用作字典的键或是作为集合中的一个成员。集合对象是一组无序排列的可哈希的值。

     集合支持用Int或not in操作符检查成员,由len()内建函数得到集合的基数(大小),用for循环迭代集合的成员。但是,因为集合本身是无序的,你不可以位集合创建索引或执行切片(slice)操作,也没有键可用来获取集合中元素的值。

表示:

        - 集合用大括号{}表示,元素间用逗号分隔。

        - 建立集合类型用{}或set()。

        - 建立空集合类型,必须使用set()函数。

示例:     

 A={ "python", 123, ("python",123) }
 
 B=set( "pypy123" )  →  { '1', 'p', '2', '3', 'y' }


应用场景:

       场景1:包含关系的比较,比如我们有一组数据,判断其它数据或者某一组数据是否在这个数据中。

       场景2:数据去重,即利用集合元素的唯一性,去除重复元素。

              

集合类型及操作的总结:

       

序列类型
       是python中非常重要的一个数据结构。掌握好序列类型基本就可以处理绝大多数组合数据类型的应用场景。

定义:

       序列是具有先后关系的一组元素。

       - 序列是一维元素向量,每个元素可以是任何一种数据类型。即元素的类型可以不同。但是元素之间可以相同。

       - 类似数学元素序列:

       - 序列是一个基类类型,由此派生出:字符串类型""、元组类型()、列表类型[]。

       - 元素间由序号引导,通过下标访问序列的特定元素。存在正向递增和反向递减序号的索引关系。正向,第一个元素序号为0;反向,最后一个元素序号为-1。

                     

6个通用操作符:

示例:

>>> ls = ["python",123,".io"]
>>> ls[::-1]
['.io',123,'python']
 
>>> s = "python123.io"
>>> s[::-1]
'oi.321nohtyp'


5个函数和方法:

示例:

>>> ls = ["python",123,".io"]
>>> len(ls)
3
 
>>> s = "python123.io"
>>> max(s)
'y'


列表
        - 列表用方括号[ ]或list()创建。元素之间使用逗号,分隔。

        - 列表(list)像字符串类型一样,但是字符串只能由字符组成,而且是不可变的(不能单独改变它的某个值),而列表被创建后可以随意被修改,且元素类型可以不同,无长度限制

       列表不仅可以包含Python的标准类型,而且可以用用户定义的对象作为自己的元素。列表可以包含不同类型的对象,而且要比C或者Python自己的数组类型(包含在array扩展包中)都要灵活,因为数组类型所有的元素只能是一种类型。列表可以执行pop、sort、reverse等操作。列表也可以添加或者减少元素,还可以跟其他的列表结合或者把一个列表分成几个。可以对单独一个元素或者多个元素执行insert、update或remove操作。

列表类型操作函数和方法:

 

示例:

>>> ls=["cat", "dog", "tiger", 1024]
>>> ls
['cat', 'dog', 'tiger', 1024]
>>> ls[1:2]
['dog']
>>> ls[1:2]=[1,2,3,4]
>>> ls[1:2]
[1]
>>> ls
['cat', 1, 2, 3, 4, 'tiger', 1024]
>>> ls[::3]
['cat', 3, 1024]
>>> ls
['cat', 1, 2, 3, 4, 'tiger', 1024]
>>> del ls[::3]
>>> ls
[1, 2, 4, 'tiger']
>>>

元组
       - 元组用圆括号()或者tuple()创建,元素间用逗号','分隔。

       - 可以使用或不使用小括号 

#示例1:
 
def func():
    return 1,2
示例2:

>>> creature = "cat","dog","tiger","human"
>>> creature
('cat','dog','tiger','human')
>>> color = (0x001100, "blue", creature)
>>> color
(4352, 'blue',('cat','dog','tiger','human'))


       其在很多操作上都跟列表一样,许多用在列表上的例子在元组上照样能跑。元组与列表的主要不同在于:元组是不可变的,或者说是只读的,所以那些用于更新列表的操作,比如用切片操作来更新一部分元素的操作,就不能用于元组类型。因此元组不支持赋值的,无法修改元组中的元素。元组特点是可获取、不可修改、有序。

序列类型应用场景:
         - 元组用于元素不改变的应用场景,更多用于固定搭配场景,或如果不希望数据被程序所改变,转换成元组类型。       

>>> ls=["cat", "dog", "tiger", 1024]
>>> lt=tuple(ls)
>>> lt
('cat', 'dog', 'tiger', 1024)

         -元组定义的时候要注意,如果不加逗号,输出结果为整型,加了逗号输出结果为元组。加逗号才是元组,逗号是区分是否是元组的标识符,tuplevar=1,2,3也是元组。

>>> tuplevar =(123)
>>> print(tuplevar,type(tuplevar))
123 <class 'int'>
>>> tuplevar =(123,)
>>> print(tuplevar,type(tuplevar))
(123,) <class 'tuple'>

字典

 语法:{键1:值1,键2:值2,键3:值3……}
定义一个空字典:
dictvar = {}
定义一个普通字典:

>>> dictvar = {"a1":"123","a2":"234","b1":"345","b2":"456"}
>>> print (dictvar,type(dictvar))
{'a1': '123', 'a2': '234', 'b1': '345', 'b2': '456'} <class 'dict'>

      字典是Python语言中唯一的映射类型。映射类型对象里哈希值(key)和指向的对象(value)是一对多的关系。字典是键值对的集合,键值对之间无序。
一个字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也包括其他容器类型。

采用花括号{}和dict()创建,键值对用冒号:表示。元素之间,用逗号分隔。
可以通过方括号[ ]这样的形式,通过键值来获得和修改字典中的值。

>>> dictvar["a1"]
'123'
>>> dictvar["a1"]="123123"
>>> dictvar
{'a1': '123123', 'a2': '234', 'b1': '345', 'b2': '456'}


 字典类型和序列类型容器类(列表、元组)的区别:

       存储和访问数据的方式不同。序列类型只用数字类型的键(从序列的开始起按数值顺序索引)。映射类型可以用其他对象类型做键,一般最常见的是用字符串做键。和序列类型的键不同,映射类型的键直接或间接地和存储的数据值相关联。但因为在映射类型中,我们不再用“序列化排序”的键,所以映射类型中的数据是无序排列的;映射类型不要求用数字值做索引以从一个容器中获取对应的数据项。你可以用键直接“映射”到值,这就是为什么叫映射类型(“mappingtype”)的原因。

字典类型与集合类型的区别:

      字典和集合都是用花括号{}表示。但是,1)集合类型每个元素是一个值,而字典类型的元素是键值对。2)生成空的集合类型不能使用空花括号的方式,即{}。而应该使用set函数来完成。因为,它是默认来生成字典类型的;字典类型在计算机编程中非常常用。

一些常用的操作函数和方法:

       字典是Python中最强大的数据类型之一。字典最常见的操作有:字典创建、字典赋值、字典中值的访问、字典更新、字典元素删除等操作。

参考文献:

https://blog.csdn.net/aishuirenjia/article/details/108056231

https://blog.csdn.net/qq_39787513/article/details/106939265

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值