关键词搜索

源码搜索 ×
×

python六大数据类型

发布2021-01-18浏览469次

详情内容

六大数据类型
python的六大数据类型是Number(四种数字类型) + 五种容器类型

1、Number数字类型
int 整型(整数)
float 浮点型(小数)
bool 布尔型(布尔值)
complex 复数
long 大整型(长整型,无限大,python3.X中淘汰,原因:科技、计算机的发展使内存廉价)

2、container容器类型
str 字符串
list 列表
tuple 元组
set 集合
dict 字典
数字类型数据
int 整型
什么是整型
整型指的就是整数,包括正整数、0、负整数

如何定义整型

# 直接输入整数,整数是没有小数点的数,只要[vb.net教程](https://www.xin3721.com/eschool/VBNetxin3721/)
有小数点,就不算是整型
# 在定义变量时直接赋值整数,变量的类型就成为整型
intvar = 100	# 整数
print(intvar, type(intvar))
intvar = 100.00	# 不算整数(浮点数)
print(intvar, type(intvar))

# 使用int函数,也就是空的整型
intvar = int()	# 默认为0
print(intvar, type(intvar))

    其它进制整型的表示c#教程方法

    # 二进制、八进制、十六进制数:在表示这些数字的时候分别在数字前冠以0b、0o、0x的前缀表示。
    
    # 二进制数
    intvar1 = 0b101010101
    # 八进制数
    intvar2 = 0o713211230
    # 十六进制数
    intvar3 = 0xabcdef123
    # print打印的数据显示十进制数
    print(intvar1, intvar2, intvar3)
    float 浮点型
    什么是浮点型
    浮点型指的就是小数
    
    如何定义浮点型
    # 1、直接写小数
    fltvar = 100.1
    print(fltvar, type(fltvar))
    
    # 2、科学计数法
    # E表示小数点的位置,1.E2表示小数点向右移[python基础教程](https://www.xin3721.com/eschool/pythonxin3721/)动两位,位数不够用0补位,1E-1反之。
    fltvar1 = 1.E2 + 1E-1
    print(fltvar1, type(fltvar1))
    
    # 3、使用函数float,空的浮点数
    fltvar2 = float()
    print(fltvar2, type(fltvar2))
    
      12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    什么是科学计数法

    科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式
    (1≤|a|<10,a不为分数形式,n为整数),这种记数法叫做科学记数法。
    当我们要标记或运算某个较大或较小且位数较多时,用科学记数法免去浪费很多空间和时间。

    概念:
    把一个数表示成a与10的n次幂相乘的形式(1≤|a|<10,a不为分数形式,n为整数),这种记数法叫做科学记数法。
    例如:19971400000000=1.99714×10^13。
    计算器或电脑表达10的幂是一般是用E或e,
    也就是1.99714E13=19971400000000。
    bool 布尔值
    什么是布尔型
    在计算机上布尔型代表逻辑上的真假,布尔值的值只有两种,真和假, True和False。

    在python中,乃至计算机科学当中,任何的东西的本质都是True和False,都是非真既假的,这也就是也和计算机的工作原理分不开,比如计算机当中使用二进制来进行工作,都是只有两种形态来表示的。

    如何定义布尔值

    # 1、直接输入truefalse
    # 注意,python中的truefalse首字母是大写的
    bolvar1 = True		# 真
    bolvar2 = False		# 假
    print(bolvar1, type(bolvar1))
    print(bolvar2, type(bolvar2))
    
    # 2、使用bool函数,默认为false
    boolvar = bool()
    print(boolvar)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    complex 复数
    什么是复数
    复数是由实数和虚数组成的数,J 表示的是一个平方为-1的数,应为这样的数在实际当中不存在所以用 J 表示,简单的来说,复数就是实数+虚数。

    j :如果有一个数,它的平方等于-1,那么这个数就是j,科学家认为有表达高精度类型。
    如何定义复数

    # 1、直接写复数
    cpxvar = 4j
    cpxvar1 = 1+4j
    cpxvar1 = -4j
    
    # 使用函数complex()
    cpxvar2 = complex(10, 20)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    容器类型数据

    # 说明:容器类型数据当中可以存放任何类型的数据,二级及以上的容器有特殊情况
    
    # 字符串容器较为特殊,str当中可以可以存放任何数据的类型,但是任何数据的类型都会变为str
    
    • 1
    • 2
    • 3

    str 字符串
    什么是字符串
    字符串就是用引号引起来的字符,不管引号内是什么数据,只要在引号内就是字符串。

    字符串特点
    可获取、不可修改、有序

    定义字符串

    # 使用引号引起来的东西都是字符串,无论是什么东西,包括所有的引号类型,比如多行注释
    
    # 1、直接使用引号
    # 使用各种各样的引号都是字符串
    strvar = 'hello motherland'
    strvar1 = "hello my motherland"
    # 使用三引号可以跨行,并且要定义变量接受,否则就只是一段注释
    strvar2 = '''
    hello motherland
    '''
    strvar3 = """
    hello 
    my
    motherland
    """
    print(strvar, type(strvar))
    print(strvar1, type(strvar1))
    print(strvar2, type(strvar2))
    print(strvar3, type(strvar3))
    
    # 即使是其它的数据类型也是字符串
    strvar = '100'	# 引号中是整型
    print(strvar, type(strvar))
    
    # 定义空字符串,使用str函数 或者是空引号
    strvar, strvar2 = str(), ''
    print(type(strvar), type(strvar2))
    获取字符串中的数据
    # python中字符串也存在正逆向下标
    strvar = 'hello motherland'
    res = strvar[-1]
    print(res)
    res = strvar[1]
    print(res)
    
    # 字符串是不可修改的
    # 修改字符串其中的某一个元素
    # strvar[-1] = 'm'		# error 报错
    
      12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    list 列表
    什么是列表
    就是其他语言当中的数组

    特点
    可获取、可修改、有序

    定义列表

    # 列表中可以存放一切数据,使用中括号包括,使用逗号分隔不同的数据
    
    # 直接定义
    msr = 'hello motherland'	# 字符串变量
    lstvar = [123'hello china', msr]	# 可以存放整型,字符串,变量等一切合法的数据类型
    print(lstvar, type(lstvar))
    
    # 定义空列表
    lstvar, lstvar2 = list(), []
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    获取列表容器当中的元素
    容器当中的每个元素都有按顺序对应的正逆向下标索引,如果要获取容器当中的某个元素,可以按照下标索引来获取。

    ‘’’ 正向下标索引: 0 1 2 3 4 ‘’’
    lstvar = [1, 2, 3, 4, 5]
    ‘’’ 逆向下标索引: -5 -4 -3 -2 -1 ‘’’

    # 获取第一个元素
    res = lstvar[0]
    
    # 逆向下标是Python特有,可以快速获取容器中的最后一个元素
    res = lstvar[-1]
    
    # 没有逆向下标怎么获取最后一个数据元素
    # 各语言获取最后一个元素的通用写法,获取长度,然后减一,以为下标是从0开始的
    res = len(lstvar)   # 得到元素数量
    res = lstvar[res - 1]  # 下标从0开始,所以减1
    print(res)
    
    # 修改元素数据,list数据是可以修改的
    lstvar = [1, 2, 3]
    lstvar[-1] = 'msr'
    print(lstvar[-1])
    
      12
    • 13
    • 14
    • 15
    • 16

    tuple 元组
    特点
    可获取、不可修改、有序

    定义元组

    # 元组是使用逗号分隔开的一个个数据,一般情况下,都会使用小括号,但是小括号不是必须的
    tupvar = (1,2,3,4,5)
    print(tupvar, type(tupvar))
    
    # 逗号是元组的标识符,只要有逗号,即使只有一个元素,没有括号都可以定义
    # 使用这些方式定义后的数据类型都是元组类型的
    tupvar = (1,)
    tupvar = 1, 2
    tupvar = 1,
    
    # 定义一个空元组
    # 单单一个括号就是一个元组类型的数据
    tupvar = ()
    tupvar1 = tuple()
    print(tupvar, tupvar1)
    print(type(tupvar), type(tupvar1))
    获取元组中的数据
    # 元组也存在正逆向下标
    
    tupvar = (1,2,3,4,5)
    
    # 获取元组的元素数据
    res = tupvar[-1]
    print(res)
    
    # 元组的元素不可以更改
    # tupvar[-1] = 'qwe'    # error 不能修改
    
      12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    set 集合
    特点
    可获取、不可修改、无序、自动去重

    定义集合

    # 集合是使用大括号包围,使用逗号分隔数据的的一种数据形式
    
    # 定义普通的集合
    setvar = {1, 2, 3, 4, 5}
    
    # 使用set函数定义集合
    setvar = set()
    
    # 定义一个空集合
    # 注意:集合不可以直接使用大括号定义空集合,大括号定义的是字典
    setvar, setvar1 = set(), {}
    print(setvar, type(setvar), setvar1, type(setvar1))
    
      12

    作用
    集合之间的交差互补

    # 1、自动去重:集合会自动的将容器中的重复的数据自动删除
    setvar = {1, 1, 1, 2, 2, 2, 3, 3, 3, 4}
    print(setvar)
    # 打印之后的数据
    {1, 2, 3, 4}
    
    # 2、集合是无序的:重复刷新会发现打印出来的元素顺序是不确定的
    setvar = {'1', '2', '3'}
    print(setvar)
    # 多次打印
    {'1', '2', '3'}
    {'1', '3', '2'}
    {'3', '1', '2'}
    
    # 自动去重之后的集合也是无序的,但是如果集合当中是纯数字的话,是按照数字大小排序的
    setvar = {1, 23, 4, 5, 6, 7, 8, }
    print(setvar)
    setvar = {True, False, True}
    print(setvar)
    setvar = {1, 23, 4, 5, True, 6.123412, 7, 8, False}
    print(setvar)
    获取集合中的数据
    # 因为集合无序,所以集合没有下标索引,所以既不能获取单个元素,也不能修改。
    setvar = {'1', '2', '3', '1', '2', '3', '1', '2', '3'}
    
    # 获取集合当中的某一个元素
    # res = setvar[-1]    # error 错误
    
    # 也不能修改,以为根本获取不到要修改的那个数据
    setvar[-1] = '1234'    # error 错误
    
      12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    dict 字典
    什么是字典
    字典就是其他语言当中的自定义对象。

    特点
    利用键存储数据、可获取、可修改、表面有序、实际无序

    定义字典

    # 语法:{key1:value1, key2:value2, ...}
    
    # 定义空字典
    ditvar, ditvar2 = dict(), {}
    
    # 定义一个普通的字典
    ditvar = {'及时雨':'宋江', '玉麒麟':'卢俊义', '智多星':'吴用', 'Python小白':'小白白'}
    print(ditvar, type(ditvar))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    获取和修改字典数据

    # 字典使用键存储数据,所以获取字典中的元素要寻找它对应的键,修改也是如此。
    ditvar = {'及时雨':'宋江', '玉麒麟':'卢俊义', '智多星':'吴用', 'Python小白':'小白白'}
    
    # 获取和修改字典中的元素
    # 获取数据
    res = ditvar['智多星']
    print(res)
    
    # 修改数据(根据字典中已有的键修改)
    ditvar['Python小白'] = '小黑'
    print(ditvar)
    
    # 在字典中添加键和值(其实也就是修改值)
    ditvar[1] = 1		# 在字典中添加一个1的键,值是1
    print(ditvar[1])
    
    
    # 注意字典的键是唯一的,当字典中出现两个相同的键时,键取后面的键所对应的值
    # 字典的键是唯一的
    dicvar = {1: 2, 1: 3}
    print(dicvar)
    
      12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    字典的键和集合的值
    数据类型的要求

    集合的值和字典的键必须是可哈希的数据类型(不可变数据)

    字典的键和集合的值对数据类型是有要求的,只能是Number、str、tuple的类型的数据,字典的值对数据类型没有要求,只要是合法的python数据类型就可以

    在实际的工作当中,我们对字典的要求更高,python中键的命名虽然满足上述的几个要求即可系统的执行,但是我一般会要求字典的键的命名和变量名的命名是一样的要求。

    “”"
    字典的键 和 集合中的值 数据类型的要求必须是如下几种:
    如下类型可以:

    不可变数据(可哈希的数据类型) 有序
    Number(int, float, bool, complex), str, tuple

    不允许的类型:
    可变数据(不可哈希的数据类型) 无序
    list, set, dict
    “”"
    但凡提到哈希算法(hash),都是典型的无序特征
    目的: 为了更加均匀的把数据分配到内存里,底层用的算法类似于取模.

    python3.6版本之后,字典做了优化,储数据的时候用哈希算法但是在拿出数据的时候,新按照定义字典时的顺序进行重新排序所以看起来有序,际上无序。
    容器类型总结

    数据类型是否可获取是否有序是否可以修改其中元素
    str字符串可获取有序
    list列表可获取有序
    tuple元组可获取有序
    set集合不可获取无序
    dict字典可获取看似有序、实际无序

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载