[转帖]Python基础之数据类型(一)
https://www.jianshu.com/p/5c43f6056f77
Python基本数据类型
python系列文档都是基于python3
- 数字
- 字符串
- 列表
- 元组
- 字典
- 集合
一、数字
特性:
- 只能存放一个值
- 一经定义,不可更改
- 直接访问
- 整型
十进制转二进制bin(10)
十进制转八进制oct(10)
十进制转十六进制hex(10)- int函数
int('10',base=10) #base=10,表示将字符串转换为十进制
int('0b1010',base=2) #base=2,表示将字符串转换为二进制
int('0o12',base=8) #base=8,表示将字符串转换为八进制
int('0xa',base=16) #base=16,表示将字符串转换为十六进制
- 布尔
>>> bool(0) #零表示False
False
>>> bool(1) #非零数字自带的布尔值都是True
True
>>> bool("hello") #非空的字符串布尔值都是True
True
- 浮点(float)
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。
>>> a=123.3442
>>> type(a)
<class 'float'>
- 复数
Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
>>> 1.3 + 2.3j == 1.3 + 2.3j
True
二、字符串
由单引号、双引号或者三引号引起来的内容为字符串。
>>> name = 'LAIN'
>>> type(name)
<class 'str'>
- 字符串操作
msg = 'Hello World'
print(msg.count('o')) #统计元素出现的次数;
print(msg.count('o',4,7)) #指定索引位范围,顾头不顾尾计算元素出现次数;
print(msg.capitalize()) #将字符串第一个字母大写,其余全部小写;
print(msg.casefold()) #将字符串所有字母小写;
print(msg.lower()) #将字符串所有大写转换为小写
print(msg.upper()) #将字符串所有小写转换为大写
print(msg.center(20)) #将字符串居中,以20个字符为基准其余部分以空格填充,进行显示;
print(msg.center(20,'#')) #将字符串居中,以20个字符为基准其余部分以"#"填充,进行显示;
print(msg.encode(encoding='utf-8',errors='')) #定义字符串显示编码;
print(msg.find('o')) #查找字符串元素,找到了显示索引位,找不到显示-1;
print(msg.index('o')) #与find类似,找到了显示索引位,找不到直接报错;
print('_'.join(['Hello','World'])) #字符串拼接,以'_'拼接两个字符串;
print(msg.replace('Hello','Hi')) #字符串拼接,替换指定字符;
print(msg.split(' ')) #字符串拆分,默认以空格为关键字' ';
print(msg.endswith('d')) #判断字符串是否以'd'结尾,True或者False
print(msg.expandtabs(tabsize=10)) #tab键以10个字符表示
print('{} {}'.format('name','agr')) #赋值给{}
print('{0}{1}{1}'.format('name','agr')) #赋值给{},必须按照位置一对一赋值
print(msg.isalnum()) #判断是否是字母或数字
print(msg.isalpha()) #判断是否是字母
print(msg.isnumeric()) #判断是否是数字
print(msg.isdecimal()) #判断是否是十进制
print(msg.isdigit()) #判断是否是整型数字
print(msg.isidentifier()) #判断字符串是否是字母开头
print(msg.islower()) #判断字符串是否全是小写字母
print(msg.isspace()) #判断是否是空格
print(msg.istitle()) #判断是否是标题(只有首字母大写例:Helloworld)
print(msg.ljust(20,'#')) #字符串内容向左对齐,总共占用20个字符,其余字符以'#'表示
print(msg.rjust(20,'#')) #字符串内容向右对齐,总共占用20个字符,其余字符以'#'表示
print(msg.lstrip()) #去掉左边的空格
print(msg.rstrip()) #去掉右边的空格
print(msg.strip()) #去掉左右两边的空格
print(msg.zfill(20)) #右对齐,不够的位数用0填充,指定20个字符
三、列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。通常作为函数的返回类型;列表是由一组元素组成,元素可以是整数,字符串,元组,或者是列表;每个元素分配一个数字,来表示索引位,第一个元素索引位为0,第二个为1,以此类推;列表操作有索引,切片,加,乘,检查成员。
- 列表操作
number = [1,2,3,4,5,6,7,8]
增加
number.append(9) #追加,在最后一个元素末尾追加整数'9'
number.insert(2,88) #插入,在第二个索引位插入整数'88'
删除
number.remove(5) #删除值,删除元素'5';全量删除不需要知道元素所在的索引位
del number[3] #删除索引位为3的元素
number.pop() #默认删除最后一个,可以通过下标删除
number.pop(3) #删除下标为3的元素
修改
number[2] = 'hello' #直接修改,索引位为2的元素
查询
print(number[2]) #查看索引位为2的元素
print(number[0::2]) #列表切片,从第一个元素开始,到最后一个结束,步长为2(间隔一个元素)
print(number[-3:]) #列表切片,取倒数三个元素
print(number[:3]) #列表切片,取前三个元素
number.index('wangxu') #取这个元素的下标,如果没有直接报错,如果有多个相同的元素只查找出第一个
统计
n2 = [3,2,67,88,23]
count print('count',number.count('3')) #统计出现次数
clear number.clear #清空列表
extend number.extend(n2) #合并列表
reverse number.reverse() #反转
sort number.sort() #通过ascii码表顺序排序
copy number.copy() #拷贝列表
- 列表
copy
#copy和赋值的区别,copy是拷贝一份副本,两个列表互不影响;赋值相互影响;
list1 = ['xiaoming','xiaolan','lain','laodeng']
list2 = list1.copy()
list3 = list1
list1.pop()
print("List1:",list1,id(list1))
print("List2:",list2,id(list2))
print("List3:",list3,id(list3))
####
List1: ['xiaoming', 'xiaolan', 'lain'] 57931976
List2: ['xiaoming', 'xiaolan', 'lain', 'laodeng',] 57404872
List3: ['xiaoming', 'xiaolan', 'lain'] 57931976
####
四、元组
元组就是上了枷锁的列表,元组是不可改变的,主要是用来读。元组的标志是逗号;
- 元组操作
tuple1 = (1,2,23,45,23,22,111,333,25,76,87,93)
print(tuple1) #查询,查询出元组内的元素
print(tuple1.count(23)) #查询,统计出'23'出现的次数
print(len(tuple1)) #查询,统计出元组里有多少元素
print(max(tuple1)) #查询,统计出元组里最大的元素
print(min(tuple1)) #查询,统计出元组里最小的元素
print(tuple1[:2]) #元组切片,从头开始截取到索引位为2的元素,不包含索引位为2的元素;顾头不顾尾
print(tuple1[2:5])
print(tuple1[:]) #元组切片,从头开始取出所有元素
print(tuple1[-2]) #元组切片,取出倒数第二个元素
print(tuple1[::2]) #元组切片,步长2(间隔一个元素)
del tuple1 #删除元组,不可查
#元组本身是不可以删除和修改的,但是可以通过字符串拼接来实现
tuple2 = ('xiaoli','haha','lain','laodeng','pangpang','wangwang')
tuple2 = tuple2[:2] + ('xiaohong',) + tuple2[2:] #元组添加,通过字符串拼接实现添加元素
print(tuple2)
tuple2 = tuple2[:2] + tuple2[3:] #元组删除,通过字符串拼接删除元素
print(tuple2)
五、字典
字典一种key-value的数据类型,类似于json串;将存储更复杂的信息,获取更简单;
- key的定义规则:
1.不可变,数字、字符串、字典、元组(定义符合(),与列表完全一致,唯一不同的是元组内元素不可变)
2.key必须是唯一的,所以字典天生有去重功能 - value的定义规则:
1.任意数据类型 - 字典的操作
dic = {'name':'lain','arg':28}
查询:
print(dic['name'])
print(dic.get('name')) #get方法查询不存在的项不会报错
添加:
dic['gender'] = 'female' #k:v 无序添加
修改:
dic['name'] = '11' #key不可修改
删除:
del #万能删除
del dic['name'] #删除key
- 自带函数方法
dicl = dict.fromkeys() #快速生成字典
dic.copy() #浅拷贝,只拷贝一层
dic.get() #值不存在不会报错
dic.items() #打印转换为列表形式
dic.keys() #取出字典中所有的key值
dic.pop() #pop删除,括号内写key,key不存在会报错
dic.popitem() #随机删除一对key.val
dic.setdefault() #添加字典
dic.update() #添加新字典,添加字典内容,修改字典内容
dic.values() #取出字典所有values值
- 字典定义
dic = dict() #空字典
dic1 = dict({'name':'lain','age':18})
print(dic1)
dic2 = dict(name='lain',age=18)
print(dic2)
dic3 = dict((('name','lain'),('age','18')))
print(dic3)
六、集合
集合是一种无序的,不重复的数据组合;集合在python中几乎起到的所有作用就是两个字:唯一
- 创建集合
#创建集合的两种方式,一种是直接把一堆元素用大括号{}括起来;另一种是用set()。
set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
set2 = set([1, 2, 3, 4, 5, 6, 'one', 'two'])
print(type(set1))
print(type(set2))
-------
<class 'set'>
<class 'set'>
- 集合操作
#可以便历方式访问
set1 = {1, 2, 3, 4, 5, 6, 'one', 'two'}
for i in set1:
print(i, end=' ')
--------
1 2 3 4 5 6 two one
#可以通过'in' 或者 'not in'来判断元素是否存在集合中
1 in set1
'one' not in set1
add #添加元素到集合
update #添加集合到集合
pop #随机删除
remove #指定删除,如果删除元素不存在,程序报错
discard #指定删除,如果删除元素不存在,报none
clear #清空
symmetric_difference_update #差集后,赋予新值;去除两个集合中相同的,留下彼此没有的;
- 集合的模式
- 交集:intersection print(s1&s2)
- 并集:union print(s1|s2)
- 差集:difference print(s1-s2)
- 子集:issubset print(s1<=s2)
- 父集:issuperset print(s1>=s2)
- 对称差集:symmetric_difference print(s1^s2) #去掉两个集合里重复的
- 不可变的集合
#有时候需要集合的数据具有稳定性,不可增加或删除;就需要用frozenset()函数冰冻集合;
set3 = frozenset([1, 2, 3, 4, 5, 6, 'three', 'four'])
[转帖]Python基础之数据类型(一)的更多相关文章
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- python基础一数据类型之集合
摘要: python基础一中介绍数据类型的时候有集合,所以这篇主要讲集合. 1,集合的定义 2,集合的功能 3,集合的方法 1,集合的定义 list1 = [1,4,5,7,3,6,7,9] set1 ...
- python基础一数据类型之元祖
摘要: python基础一中写到数据类型元祖,那么这篇主要讲元祖. 1,元祖定义 tuple1 = (1,2,'a','b') 元祖是不可变数据,所以又名只读列表.那么如何让是元祖可变呢?可以在元祖中 ...
- python基础一数据类型之列表
摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...
- Python基础一数据类型之数字类型
摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- Python学习day04 - Python基础(2)数据类型基础
<!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
随机推荐
- Quartz.Net系列(五):Quartz五大构件Job之JobBuilder解析
所有方法图: 1.Create,OfType 在JobBuilder中有五种方法执行Action: var job1 = JobBuilder.Create().OfType<FirstJob& ...
- 基于DAYU的实时作业开发,分分钟搭建企业个性化推荐平台
摘要:搭建这个平台最费时耗力的事莫过于对批.流作业的编排,作业组织管理以及任务调度了.但是这一切,用DAYU的数据开发功能几个任务可通通搞定. 大多数电商类企业都会搭建自己的个性化推荐系统,利用自己拥 ...
- 这是你没见过的MindSpore 2.0.0 for Windows GPU版
摘要:一文带你看看MindSpore 2.0.0 for Windows GPU版. 本文分享自华为云社区<MindSpore 2.0.0 for Windows GPU泄漏版尝鲜>,作者 ...
- 深度解读鸿蒙轻内核CPU占用率
摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...
- 数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B 实验
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)2023 数据飞轮汽车行业研讨会在上海举办,活动聚焦汽车行业数字化转型痛点,从字 ...
- Solon 项目的单元测试插件
1.引入依赖 <dependency> <groupId>org.noear</groupId> <artifactId>solon-test</ ...
- 玩转Python:处理图像,两个非常重要的库,很实用,附代码
在Python中,图像处理是一个涉及图像分析.编辑和处理的广泛领域.有几个流行的库通常用于处理图像,每个库都有其特殊的功能和优势.以下是一些常用的Python图像处理库: 1. Pillow (PIL ...
- [译]为什么你应该关注 Docker
注:该文原文为 Why You Should Care About Docker ,由 CHRIS DAWSON 编写. 当我在 Dockercon 上陶醉于那些令人激动地议题时,我想到了一个问题:我 ...
- AtCoder Beginner Contest 170 (D~F题,D筛法,E multiset使用,F Dijkstra算法改进)
题目链接:Here ABC水题, D. Not Divisible 看了题解才想到,可以用 Sieve of Eratosthenes,因为 \(A_i\) 最大才 \(10^6\) 但有注意的点 1 ...
- vivo 悟空活动中台 - 微组件状态管理(下)
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/1DzTYIExVbK0uE_Oc7IHYw作者:悟空中台研发团队 [悟空活动中台]系列往期精 ...