六大数据类型
# 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() # 默认为0print(intvar, type(intvar))
其它进制整型的示意办法
# 二进制、八进制、十六进制数:在示意这些数字的时候别离在数字前冠以0b、0o、0x的前缀示意。# 二进制数intvar1 = 0b101010101# 八进制数intvar2 = 0o713211230# 十六进制数intvar3 = 0xabcdef123# print打印的数据显示十进制数print(intvar1, intvar2, intvar3)
float 浮点型
什么是浮点型
浮点型指的就是小数
如何定义浮点型
# 1、间接写小数fltvar = 100.1print(fltvar, type(fltvar))# 2、迷信计数法# E示意小数点的地位,1.E2示意小数点向右挪动两位,位数不够用0补位,1E-1反之。fltvar1 = 1.E2 + 1E-1print(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 布尔值
什么是布尔型
在计算机上布尔型代表逻辑上的虚实,布尔值的值只有两种,真和假, True和False。
在python中,乃至计算机科学当中,任何的货色的实质都是True和False,都是非真既假的,这也就是也和计算机的工作原理分不开,比方计算机当中应用二进制来进行工作,都是只有两种状态来示意的。
如何定义布尔值
# 1、间接输出true或false# 留神,python中的true和false首字母是大写的bolvar1 = True # 真bolvar2 = False # 假print(bolvar1, type(bolvar1))print(bolvar2, type(bolvar2))# 2、应用bool函数,默认为falseboolvar = bool()print(boolvar)
complex 复数
什么是复数
复数是由实数和虚数组成的数,J 示意的是一个平方为-1的数,应为这样的数在理论当中不存在所以用 J 示意,简略的来说,复数就是实数+虚数。
j :如果有一个数,它的平方等于-1,那么这个数就是j,科学家认为有表白高精度类型。
如何定义复数
# 1、间接写复数cpxvar = 4jcpxvar1 = 1+4jcpxvar1 = -4j# 应用函数complex()cpxvar2 = complex(10, 20)
容器类型数据
# 阐明:容器类型数据当中能够寄存任何类型的数据,二级及以上的容器有非凡状况# 字符串容器较为非凡,str当中能够能够寄存任何数据的类型,然而任何数据的类型都会变为str
str 字符串
什么是字符串
字符串就是用引号引起来的字符,不论引号内是什么数据,只有在引号内就是字符串。
字符串特点
可获取、不可批改、有序
定义字符串
# 应用引号引起来的货色都是字符串,无论是什么货色,包含所有的引号类型,比方多行正文# 1、间接应用引号# 应用各种各样的引号都是字符串strvar = 'hello motherland'strvar1 = "hello my motherland"# 应用三引号能够跨行,并且要定义变量承受,否则就只是一段正文strvar2 = '''hello motherland'''strvar3 = """hello mymotherland"""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开始,所以减1print(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, 2tupvar = 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的键,值是1print(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 字典 | 可获取 | 看似有序、理论无序 | 可批改 |