Python_Number类及容器类基本数据类型
一、前言
今天写下关于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类及容器类基本数据类型相关推荐
- java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
整型:整数类型int 一般的数据. long 极大的数据. short 用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组. byte 用于特定的场合,比如底层的文件处理或者需要 ...
- java基本类型是类吗_Java基本数据类型和引用类型(一)
Java基本数据类型和引用类型 Java中一共有四类八种基本数据类型,看下表: 除掉这四类八种基本类型,其它的都是对象,也就是引用类型,包括数组. 来看一段示例代码: 一个Person类,提供了一个构 ...
- java四类八种基本数据类型
java基本数据类型就8种,除了这些都是引用型的了. 一.java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 ...
- java四类八种_java四类八种基本数据类型
Java基本数据类型就8种,记住就好了.除了这些都是引用型的了. java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类: ...
- 循环遍历java属性_java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
- java中如何遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test;import java.lang.reflect.Field;import java.lang.reflect.InvocationTarget ...
- java 类参数_Java的数据类型和参数传递(详解)
Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127 (-2^7到2^7-1) shor ...
- staruml 为类的属性指定数据类型_关于python的数据类型
一.数据类型的分类 取值方式 直接取值:数字 序列类型:list.tuple.deque.str.bytes.bytearray.array.array,可索引,有序.可切片 映射类型:dict.se ...
- oracle lob类型和mysql text_LOB数据类型
概述 由于无结构的数据往往都是大型的,存储量非常大,而LOB(large object)类型主要用来支持无结构的大型数据.用户可以用LOB数据类型来存储大型的无结构数据,特别是文本,图形,视频和音频等 ...
- JAVA的四类八种基本数据类型
先说明两个词汇的基本概念: bit (位):位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1". byte (字节):字节是计算机存储 ...
最新文章
- 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)
- oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle
- 1669 DINIC+二分
- 简单的jQuery扩展函数-让函数缓冲执行
- Maven最全教程,还有哪里对maven不解的地方看过来!
- 如何判断lib是/md or /mt编译的
- 智能家居助手后台系统原型/智慧家居后台管理系统/应用分析/页面分析/设备分析/用户管理/运营管理/权限管理/系统设置/问题反馈/商城管理/消息管理/用户画像/公告管理/账号画像/留存用户/数据埋点
- c语言警告文件末尾没有换行符,“文件末尾没有换行符”编译器警告
- Flash CS4学习笔记1
- 修复漏洞显示连接服务器失败,服务器安全狗漏洞补丁失败怎么办
- Django验证码——手机注册登录
- Intellij IDEA新导入项目运行出现 java: -source 1.5 中不支持 diamond 运算符7
- vue开发网站seo优化方法
- 深入浅出实时数据库12.8日版
- 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读
- 【英语】--动起来的英语进度
- linux开放端口的两种方法
- 用于大规模视觉定位的直接2D-3D匹配(IROS 2021)
- 启明星辰产品解读_堡垒机
- kafka消费者--coordinate分析