关于python:python六大数据类型

1次阅读

共计 5313 个字符,预计需要花费 14 分钟才能阅读完成。

六大数据类型

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

1、Number 数字类型
int 整型(整数)float 浮点型(小数)bool 布尔型(布尔值)complex 复数
long 大整型(长整型,无限大,python3.X 中淘汰,起因:科技、计算机的倒退使内存便宜)2、container 容器类型
str 字符串
list 列表
tuple 元组
set 汇合
dict 字典

数字类型数据

int 整型

什么是整型

整型指的就是整数,包含正整数、0、负整数

如何定义整型
# 间接输出整数,整数是没有小数点的数,只有有小数点,就不算是整型
# 在定义变量时间接赋值整数,变量的类型就成为整型
intvar = 100    # 整数
print(intvar, type(intvar))
intvar = 100.00    # 不算整数(浮点数)print(intvar, type(intvar))

# 应用 int 函数,也就是空的整型
intvar = int()    # 默认为 0
print(intvar, type(intvar))
其它进制整型的示意办法
# 二进制、八进制、十六进制数:在示意这些数字的时候别离在数字前冠以 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 示意小数点向右挪动两位,位数不够用 0 补位,1E- 1 反之。fltvar1 = 1.E2 + 1E-1
print(fltvar1, type(fltvar1))

# 3、应用函数 float,空的浮点数
fltvar2 = float()
print(fltvar2, type(fltvar2))

什么是迷信计数法

迷信记数法是一种记数的办法。把一个数示意成 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 布尔值

什么是布尔型

在计算机上布尔型代表逻辑上的虚实,布尔值的值只有两种,TrueFalse

在 python 中,乃至计算机科学当中,任何的货色的实质都是 True 和 False,都是非真既假的,这也就是也和计算机的工作原理分不开,比方计算机当中应用二进制来进行工作,都是只有两种状态来示意的。

如何定义布尔值
# 1、间接输出 true 或 false
# 留神,python 中的 true 和 false 首字母是大写的
bolvar1 = True        # 真
bolvar2 = False        # 假
print(bolvar1, type(bolvar1))
print(bolvar2, type(bolvar2))

# 2、应用 bool 函数,默认为 false
boolvar = bool()
print(boolvar)

complex 复数

什么是复数

复数是由实数和虚数组成的数,J 示意的是一个平方为 - 1 的数,应为这样的数在理论当中不存在所以用 J 示意,简略的来说,复数就是 实数 + 虚数

j:如果有一个数,它的平方等于 -1,那么这个数就是 j,科学家认为有表白高精度类型。
如何定义复数
# 1、间接写复数
cpxvar = 4j
cpxvar1 = 1+4j
cpxvar1 = -4j

# 应用函数 complex()
cpxvar2 = complex(10, 20)

容器类型数据

# 阐明:容器类型数据当中能够寄存任何类型的数据,二级及以上的容器有非凡状况

# 字符串容器较为非凡,str 当中能够能够寄存任何数据的类型,然而任何数据的类型都会变为 str

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 报错

list 列表

什么是列表

就是其余语言当中的数组

特点

可获取、可批改、有序

定义列表
# 列表中能够寄存所有数据,应用中括号包含,应用逗号分隔不同的数据

# 间接定义
msr = 'hello motherland'    # 字符串变量
lstvar = [1,2,3,'hello china', msr]    # 能够寄存整型,字符串,变量等所有非法的数据类型
print(lstvar, type(lstvar))

# 定义空列表
lstvar, lstvar2 = list(), []
获取列表容器当中的元素

容器当中的每个元素都有按程序对应的正逆向下标索引,如果要获取容器当中的某个元素,能够依照下标索引来获取。

'''正向下标索引: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])

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 不能批改

set 汇合

特点

可获取、不可批改、无序、主动去重

定义汇合
# 汇合是应用大括号突围,应用逗号分隔数据的的一种数据模式

# 定义一般的汇合
setvar = {1, 2, 3, 4, 5}

# 应用 set 函数定义汇合
setvar = set()

# 定义一个空集合
# 留神:汇合不能够间接应用大括号定义空集合,大括号定义的是字典
setvar, setvar1 = set(), {}
print(setvar, type(setvar), setvar1, type(setvar1))
作用

汇合之间的交差互补

# 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 谬误

dict 字典

什么是字典

字典就是其余语言当中的自定义对象。

特点

利用键存储数据、可获取、可批改、外表有序、理论无序

定义字典
# 语法:{key1:value1, key2:value2, ...}

# 定义空字典
ditvar, ditvar2 = dict(), {}

# 定义一个一般的字典
ditvar = {'及时雨':'宋江', '玉麒麟':'卢俊义', '智多星':'吴用', 'Python 小白':'小白白'}
print(ditvar, type(ditvar))
获取和批改字典数据
# 字典应用键存储数据,所以获取字典中的元素要寻找它对应的键, 批改也是如此。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)

字典的键和汇合的值

数据类型的要求
# 汇合的值和字典的键必须是可哈希的数据类型(不可变数据)字典的键和汇合的值对数据类型是有要求的,只能是 Number、str、tuple 的类型的数据,字典的值对数据类型没有要求,只有是非法的 python 数据类型就能够

# 在理论的工作当中,咱们对字典的要求更高,python 中键的命名尽管满足上述的几个要求即可零碎的执行,然而我个别会要求字典的键的命名和变量名的命名是一样的要求。"""
字典的键 和 汇合中的值 数据类型的要求必须是如下几种:
如下类型能够: 

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

不容许的类型:
可变数据(不可哈希的数据类型) 无序
list, set, dict
"""
凡是提到哈希算法(hash), 都是典型的无序特色
目标: 为了更加平均的把数据调配到内存里, 底层用的算法相似于取模.

python3.6 版本之后,字典做了优化,储数据的时候用哈希算法然而在拿出数据的时候,新依照定义字典时的程序进行从新排序所以看起来有序,际上无序。

容器类型总结

数据类型 是否可获取 是否有序 是否能够批改其中元素
str 字符串 可获取 有序 不可批改
list 列表 可获取 有序 可批改
tuple 元组 可获取 有序 不可批改
set 汇合 不可获取 无序 可批改(不可手动批改,来回变动也是扭转)
dict 字典 可获取 看似有序、理论无序 可批改
正文完
 0