六大数据类型

# 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 布尔值

什么是布尔型

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

在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 字典可获取看似有序、实际无序可修改
©著作权归作者所有:来自51CTO博客作者小可爱呦的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 疫情防控不能松懈,利用数据挖掘做好重点区域人群密度预测
  2. 芋道 Spring Boot 数据库版本管理入门
  3. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成
  4. 超越 Cookie:当今的浏览器端数据存储方案[每日前端夜话0xA3]
  5. 芋道 Spring Boot 多数据源(读写分离)入门
  6. 芋道 Spring Boot 数据库连接池入门
  7. 干货丨如何使用Redash连接DolphinDB数据源
  8. 链路追踪 SkyWalking 源码分析 —— Collector 接收 Trace 数据
  9. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创

随机推荐

  1. linux CentOS 7.4下 mysql5.7.20 密码改
  2. c语言把mysql数据库语句和变量封装为一个
  3. 错误'未知表引擎'InnoDB''查询。重启mysq
  4. 添加到LEFT JOIN查询
  5. MySQL查询优化系列讲座之数据类型与效率
  6. 解析innodb status各项参数
  7. 如何使用java Web服务从mysql数据库获取
  8. 使用C#在MySQL中备份数据库
  9. Navicat工具备份还原mysql数据库详细图解
  10. navicat for mysql 连接报错1251详细解决