一、前言

今天写下关于python标准数据类型的东西,没事的时候,常回来看看。

二、六大标准数据类型

Number :(int、float、bool、complex)
容器类型 : str " "、list [ ]、tuple ( )、set { }、dict { }

python的六个数据类型中:

不可变数据类型(3个):Number(int、float、bool、complex)、 str、 tuple
可变数据类型(3个): list、 dict、 set

如何获取一个值的类型和内存地址?

res = 255
print(type(res), id(res))# 判断一个值的数据类型
>>> res = 255
>>> isinstance = (res, int)# type 和 isinstance 有什么区别呢?

1、Number 数字类型

>>> a, b, c, d = 20, 3.14, True, 5+4j
>>> type(a), type(b), type(c), type(d)
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

1. int 整型 (正整数、0、负整数)

# 二进制整型
intvar = 0b10
print(intvar, type(intvar), id(intvar))# 八进制整型
intvar = 0o22724
print(intvar, type(intvar), id(intvar))# 十六进制整型
intvar = 0x8abcdef
print(intvar, type(intvar), id(intvar))

2. float 浮点型 (小数)

浮点型有两种表达方式:

# 1.小数
floatvar = 3.14# 2.科学计数法
>>> floatvar = 5.1e4  # 代表将小数点右移4位
>>> floatvar
51000.0

3. bool 布尔类型

主要用于各种逻辑判断

boolvar = True
boolvar = False
print(boolvar)

4. complex 复数类型

complex 也有两种表达方式:

complexvar = 3-10j
complexvar1 = complex(3, -10)
print(complexvar, complexvar1)
"""
complex 由实数和虚数构成,如 5+3j, j是不能乱写的,那么什么是 j 呢?
如果有一个数的平方等于 -1,那么这个数就是 j
complex 主要用于科学计算中,表达了一个非常高精度的类型
"""

2、str 字符串类型

字符串用 ’ ’ 或 " " 括起来,同时使用 \ (反斜杠)转义特殊字符

strvar = ""       # 空字符串,空格也是字符
# 字符串的拼接 只能进行相加或相乘的运算 注意双方都必须是字符串
>>> strvar1 = "想做你的太阳"
>>> strvar2 = "你的太阳"
>>> strvar1 + strvar2     # '想做你的太阳你的太阳'
>>> strvar1 * 3                # '想做你的太阳想做你的太阳想做你的太阳'

# 转义字符  \ + 字符
# 不管原先咋样,转完肯定不一样了
# 常见的转义字符有这么几种:
# \n, \r\n → Enter
# \t → Tab 缩进,水平制表符,4空格距离
# \r 将\r后面的字符直接拉到**当前行**行首,注意,是当前行呦。strvar = "你好啊\n我还行"       # 两行
strvar = "你\t好啊,我还行"  # 你    好啊,我还行
strvar = "你好啊\r我还行"      # 只打印 我还行
strvar = "你\n好\r我还行"     # 打印 你 我还行
strvar = "哎呀\"我\"去"        # 哎呀"我"去print(strvar)

元字符串 原型化输出字符串

>>> strvar = r"E:\python30\day2"
>>> print(strvar)
E:\python30\day2

格式化

"""
语法: "字符串" % (值1,值2,值3)
%d  整型占位符   %2d  %-2d 分别是什么意思?
%f  浮点型占位符  %.2f  %.1f  分别是什么意思? 这是会四舍五入的
%s  字符串占位符
""">>> strvar = "%s今天打了%s,局子里拘了%d天,最后还赔了%.2f块钱,真的%s" % ("老李", "老王", 15, 250, "血亏")
>>> strvar
老李今天打了老王,局子里拘了15天,最后还赔了250.00块钱,真的血亏

3、list 列表类型

list、tuple、str均可获取且有序,但仅有list可变。

# 1.列表的索引切片,从0开始,顾头不顾尾
# list[start:end:step]      step默认为1
lst = ["安度因", "古尔丹", "萨尔", "吉安娜", "瓦莉拉", "泰兰德"]
res = lst[-1]      # 泰兰德
res1 = lst[1:3]        # ['古尔丹', '萨尔']
res2 = lst[:4]     # ['安度因', '古尔丹', '萨尔', '吉安娜']
res3 = lst[1:]     # ['古尔丹', '萨尔', '吉安娜', '瓦莉拉', '泰兰德']
res4 = lst[:]      # ['安度因', '古尔丹', '萨尔', '吉安娜', '瓦莉拉', '泰兰德']
res5 = lst[::2]        # ['安度因', '萨尔', '瓦莉拉']
res6 = lst[::-1]   # ['泰兰德', '瓦莉拉', '吉安娜', '萨尔', '古尔丹', '安度因']     列表翻转
lst.reverse()       # 列表翻转
print(lst)
print(res)# 2.获取列表长度 len()  返回对象(字符、列表、元组等)长度或项目个数。
# 实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)
>>> lst = ["安度因", "古尔丹", "萨尔", "吉安娜", "瓦莉拉", "泰兰德"]
>>> len(lst)
6>>> str = "abcdefghigklmn"
>>> len(str)
14# 3.列表的增删改查
>>> lst = ["安度因", "古尔丹", "萨尔", "吉安娜", "瓦莉拉", "泰兰德"]
>>> lst1 = ["卡德加"]
>>> lst.insert(3, "加尔鲁什")    # 插入到任意位置
>>> lst.append("乌瑟尔")          # 追加到列表尾部
>>> lst[5] = "雷克萨"      # 通过下标进行修改
>>> lst.remove["古尔丹"]        # 删除
>>> "玛法里奥" in lst        # 判断元素是否在列表
>>> lst.extend(lst1)       # extend()方法 列表合并
>>> lst.insert(2, ["雷诺", "布莱恩"])       # 列表嵌套
>>> lst.pop()      # 默认删除最后一个元素,并返回被删除的值
>>> lst.pop(1)     # pop(),定点删除
>>> del lst[4]     # 删除
>>> lst.clear()        # 清空lst
>>> lst.index("萨尔")      # lst中查询"萨尔",返回从左开始匹配到的第一个"萨尔"的索引
>>> lst.count("古尔丹")     # 返回"古尔丹"的个数
>>> lst.sort()     # sort()列表排序
>>> for i in lst:  # 列表循环 for循环

4、tuple 元组类型

元组与列表相似,写在( )里,元组里的元素不可修改,元素间用逗号隔开

# 元组虽然不可改变,但是里面却可以包含可变的数据类型,如列表
teplevar = (1, 2, 3, ["bob", "sar"])
# 构造空元组或只有一个元素的元组,有两个注意点:
tuplevar = ()
tuplevar = (2, )   # 一个元素,需要在后面加个逗号
tuplevar = 1,      # 为什么这个还是元组,因为逗号是元组的标识符# 基本操作: 索引、切片、循环、求长度、判断包含

5、set 集合类型

# 集合的特性:(作用:较差并补)
1.集合里不能存list、dict等可变类型,可存str、tuple、Number等不可变的类型;
2.天生去重;
3.无序,不能像列表一样通过索引来获取元素
# 集合的增删改查
setvar = {}        # 定义一个空集合
setvar = set() setvar = {"火车王", "玛里苟斯", "罗斯"}   # 增
setvar.add("发财")setvar.discard("罗斯")        # 删除
setvar.pop()                # 随机删
setvar.remove("火车王")"玛里苟斯" in setvar            # 查# 帮列表去重
lst1 = list(set(lit))

6、dict 字典类型

# dict 的语法特点:键值对存储的数据,查询速度快,表面上有序,实际上无序。key是唯一的,value是可变的
# dictvar = {key1:value1, key2:value2, key3:value3, ...}       推荐使用命名的字符串作为dict中的key
# 为什么字典和集合都是无序的呢?        哈希算法的无序特征,字典和集合底层采用了哈希算法
"""
于此,字典的键和集合的值,有数据类型上的要求:
必须得是不可变的数据类型,不可变的数据才可哈希(Number、str、tuple)
"""
# 那为什么字典打印了很多遍,顺序也都一样呢?
# 因为python3.6版本,对字典进行了优化,存储数据的时候用的哈希算法,但是在拿出数据的时候,重新按照定义时候的顺序进行了排序
# dict的增删改查
>>> dictvar = {"猎人":"雷克萨", "牧师":"安度因", "法师":"吉安娜", "盗贼":"瓦莉拉"}        # 创建
>>> {}.fromkeys([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 100)      >>> dictvar["术士"] = "古尔丹"     # {'猎人': '雷克萨', '牧师': '安度因', '法师': '吉安娜', '盗贼': '瓦莉拉', '术士': '古尔丹'}
>>> dictvar
>>> dictvar.setdefault("战士", "加尔鲁什")       # 增加>>> dictvar.pop("牧师")        # 删除“牧师”
>>> del dictvar["牧师"]        # 删除不存在的数据会报错
>>> dictvar.popitems()     # 随机删除
>>> dictvar.clear()            # 清空dictvar>>> dictvar["牧师"] = "泰兰德"      # 修改
>>> dictvar.update(dic1)           # 更新>>> dictvar["key"]           # 查询,不在则报错
>>> "key" in dictvar
>>> dic.get(key, default = None)     # 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
>>> dictvar.keys()             # 返回一个包含所有keys的列表
>>> dictvar.values()       # 返回一个包含所有values的列表
>>> dictvar.items()            # 返回一个包含所有(key, value)元组的列表for k in dictvar:print(k, dictvar[k])    # 字典循环

Python_Number类及容器类基本数据类型相关推荐

  1. java 数据类型转换的一场_Java基础 — 四类八种基本数据类型

    整型:整数类型int 一般的数据. long 极大的数据. short 用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组. byte 用于特定的场合,比如底层的文件处理或者需要 ...

  2. java基本类型是类吗_Java基本数据类型和引用类型(一)

    Java基本数据类型和引用类型 Java中一共有四类八种基本数据类型,看下表: 除掉这四类八种基本类型,其它的都是对象,也就是引用类型,包括数组. 来看一段示例代码: 一个Person类,提供了一个构 ...

  3. java四类八种基本数据类型

    java基本数据类型就8种,除了这些都是引用型的了.  一.java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 ...

  4. java四类八种_java四类八种基本数据类型

    Java基本数据类型就8种,记住就好了.除了这些都是引用型的了. java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类: ...

  5. 循环遍历java属性_java中循环遍历实体类的属性和数据类型以及属性值

    package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...

  6. java中如何遍历实体类的属性和数据类型以及属性值

    package com.walkerjava.test;import java.lang.reflect.Field;import java.lang.reflect.InvocationTarget ...

  7. java 类参数_Java的数据类型和参数传递(详解)

    Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127 (-2^7到2^7-1) shor ...

  8. staruml 为类的属性指定数据类型_关于python的数据类型

    一.数据类型的分类 取值方式 直接取值:数字 序列类型:list.tuple.deque.str.bytes.bytearray.array.array,可索引,有序.可切片 映射类型:dict.se ...

  9. oracle lob类型和mysql text_LOB数据类型

    概述 由于无结构的数据往往都是大型的,存储量非常大,而LOB(large object)类型主要用来支持无结构的大型数据.用户可以用LOB数据类型来存储大型的无结构数据,特别是文本,图形,视频和音频等 ...

  10. JAVA的四类八种基本数据类型

    先说明两个词汇的基本概念: bit (位):位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1". byte (字节):字节是计算机存储 ...

最新文章

  1. 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)
  2. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle
  3. 1669 DINIC+二分
  4. 简单的jQuery扩展函数-让函数缓冲执行
  5. Maven最全教程,还有哪里对maven不解的地方看过来!
  6. 如何判断lib是/md or /mt编译的
  7. 智能家居助手后台系统原型/智慧家居后台管理系统/应用分析/页面分析/设备分析/用户管理/运营管理/权限管理/系统设置/问题反馈/商城管理/消息管理/用户画像/公告管理/账号画像/留存用户/数据埋点
  8. c语言警告文件末尾没有换行符,“文件末尾没有换行符”编译器警告
  9. Flash CS4学习笔记1
  10. 修复漏洞显示连接服务器失败,服务器安全狗漏洞补丁失败怎么办
  11. Django验证码——手机注册登录
  12. Intellij IDEA新导入项目运行出现 java: -source 1.5 中不支持 diamond 运算符7
  13. vue开发网站seo优化方法
  14. 深入浅出实时数据库12.8日版
  15. 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读
  16. 【英语】--动起来的英语进度
  17. linux开放端口的两种方法
  18. 用于大规模视觉定位的直接2D-3D匹配(IROS 2021)
  19. 启明星辰产品解读_堡垒机
  20. kafka消费者--coordinate分析

热门文章

  1. ASO优化之教你如何得到ASO优化100关键词字符
  2. 二叉搜索树的删除操作详解,图文并茂,化繁为简
  3. 技术方案的讨论过程来看化繁为简
  4. 美年旅游_套餐管理_分页PageHelper
  5. 5号字对应的数字字号_5号字体是多少pt-字号,尺寸
  6. iptables 报错 MASQUERADE':No such file or directory
  7. 命名实体消歧的代码实现
  8. 总结一下关于扫描电子显微镜与背散射电子探测器
  9. 冬至幻灵怎么修改服务器名字,冬至幻灵如何给自己加元宝
  10. windows7副本不是正版解决方法