python数据类型详解及类型转换函数


前言

python3中的标准数据类型可以简单划分为可变和不可变两种,其中不可变类型包括数字(number),字符串(str),元组(tuple);
可变类型包括列表(list),集合(set),字典(dic)。以下详细介绍各种数据类型及相关转换函数。

P.S. 在python中可以同时为多个变量赋值,且一个变量可以通过赋值指向不同类型的数据对象。
在这里插入图片描述

一、数据类型

1.number

number包括四种:
整形int、浮点float、复数complex(其系数为float类型)、布尔bool(True和False,注意首字母大写,且其代表1和0,可与int做运算)。
既然是数值,一定需要做运算,常见的运算符有+、-、*、/(得到浮点数)、//(得到整数)、%(取余)、**(乘方)。
在int、float、bool做混合运算时,结果为float型。
在这里插入图片描述
number常用函数:
数学函数(需要import math):
绝对值:abs(x)返回整形,fabs(x)返回浮点型
向上取整:math.ceil(x)
向下取整:math.floor(x)
乘方:pow(x, y)
开平方:sqrt(x)
e^x(e的x次方):math.exp(x),x可以是小数
以a为底x的对数:math.log(x,a)
最大值:max(x1, x2,…)
最小值:min(x1, x2,…),参数可以为序列。
四舍五入:round(x [,n]),返回浮点数 x 的四舍五入值,n 值代表舍入到小数点后的位数。也可以认为保留到离上一位更近的一端。

随机数函数(需要import random):
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

数学常量:pi和e,懂得都懂不多说了。

2.string

str用单引号或双引号表示。反斜杠(\)可以用来转义,使用r可以输出原字符串,即让反斜杠不发生转义。
字符串可以用+运算符连接在一起,用*运算符重复。
Python的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始,但字符串只能索引和切片,不能改变。索引和切片都用 [ ] 进行。

字符串格式化输出print()
最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中,比如:
在这里插入图片描述
P.S. print()函数的end关键字用于将结果输出到同一行(end=‘’)或在输出的末尾添加不同的字符(end=‘,’)。

格式化字符串函数 str.format()
①格式化输出字符串
和之前的用法类似,只是用{}、:和 . 来替代原先的%,优点是format()可以接收的参数更多,可以从字典、列表甚至对象中接收参数。
在这里插入图片描述
②字符串中格式化输出数值:
大括号内用冒号+格式表明目的,format()传入原始数值,常用的格式如下:

{:.nf} 保留小数点后n位,n=0表示不带小数,.前加+可以显示符号
{:.n%} 小数点后保留n位的百分比格式
{:.ne} 小数点后保留n位的指数记法
{:x>nd} d右对齐(整数用d、字符用s、小数用f),用x补至n位。用<的话是左对齐,用^的话是居中。x省略的话用空格补齐。
总结:^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
{:,} 以逗号分隔的数字格式
{:b}、{😮}、{:d}、{:x} 分别是二进制、十进制、八进制、十六进制输出。

P.S. 格式化字符串中可以使用 {} 来转义{},即大括号套大括号{{…}}时,除去最外层大括号的内容{…}会被原样输出。
在这里插入图片描述

3.list

List写在方括号之间,元素用逗号隔开,构建方法为[]或list()函数。
list也可以被索引和切片,也可以用+拼接或用*重复,但List中的元素是可以改变的。
列表和元组都是有序的,因此有时选择的关键就在于是否需要修改。切片方法详见:python序列切片

相关函数和方法:
列表长度:len(list)
列表最值:max(list)、min(list)
增:list.append(obj)(列表末尾增加一个对象)、list.extend(seq)(列表末尾追加多个值)、list.insert(index, obj)(将对象插入列表)
删:list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj):移除列表中某个值的第一个匹配项
list.clear():清空列表
查:list.count(obj):统计某个元素在列表中出现的次数
list.index(obj):从列表中找出某个值第一个匹配项的索引位置
排序:list.reverse():反向列表中元素
list.sort( key=None, reverse=False):对原列表进行排序。reverse = True 降序, reverse = False 升序(默认)
复制列表:list.copy()

4.tuple

与字符串一样,元组也可以被索引和切片,也可以使用+操作符进行拼接,或用*来重复,但元组的元素不能修改。
空元组可以用一个()来构造,一个元素的元组需要在元素后添加逗号,否则是一个int,这一点在列表和字符串中都没有。
事实上,我们可以把字符串看成一类特殊的元组,但元组可以用于多维。
在这里插入图片描述
元组元素不能更改,但还可以查看,故计算其长度、最值、统计某个元素出现次数(count)和查找某值第一次出现的索引值(index)函数都是可以用的。但增、删、排序方面的函数无法对元组使用。

5.set

集合和字典是唯二无序的序列,集合的应用在于去重和集合运算,字典的应用在于索引。
可以使用 { } 列举多个值或者 set() 函数将另一序列转换为集合的方式创建集合,即set()函数的传入参数只能是一个序列空值
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
在这里插入图片描述
常见的集合运算符有4种:- 差集;| 并集;& 交集;^ 两个集合中不同时存在的元素(即a^b=a|b-a&b)
常用的集合函数有:
增:s.add(obj):增加一个元素;s.update(seq):增加序列;
删:s.remove(x)或s.discard(x)移除某个元素,后者不报错;s.pop()随机删除一个元素;s.clear()清空集合

6.dictionary

字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型(number、str、tuple),且不能重复。创建空字典使用 { }。
构造字典也有两种方法,一种大括号一种函数dict(),其中dict()可以将二元键值对构成的序列转换为字典,很好用!
花括号结合range函数,也很好用:
在这里插入图片描述

字典的增删用[]和del就可以完成,需要注意的是dic.keys()或dic.values()可以返回一个视图对象,需要用list()才能转换成列表输出。
在这里插入图片描述

二、内置类型转换函数

1.数据类型做函数名

大部分数据类型转换函数都直接以需要得到的数据类型作为函数名,非常简单,比如:
①number:int(x ):将x转换为一个整数;float(x):将x转换到一个浮点数;complex(real [,imag]):创建一个复数。
②str(x):将对象 x 转换为字符串。
③list(s):将序列 s 转换为一个列表。
④tuple(s):将序列 s 转换为一个元组
⑤set(s):转换为可变集合。
⑥dict(d):创建一个字典。d 必须是一个 (key, value)元组序列。

2.ascii转换和进制转换

chr(x):将一个整数转换为一个字符,转换后是字符串
ord(x):将一个字符转换为它的整数值,注意输入要加引号哦~
hex(x):将一个整数转换为一个十六进制字符串
oct(x):将一个整数转换为一个八进制字符串,转换后就变字符串啦~
在这里插入图片描述

三、不常用类型转换函数

1.repr()

represent,代表。
repr()将对象转化为供解释器读取的形式,输入参数为object ,返回值为string。

2.eval(str)

evaluate,求值。
eval(str)接收一个字符串形式的表达式,返回其求值结果,例如:

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

3.frozenset()

frozenset,冻结集合,冻结后集合不能再添加或删除任何元素。
其参数为一个可迭代的对象,比如列表、字典、元组等等,返回值为一个新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。

需要不可变集合的原因是:在集合的关系中,有集合的中的元素是另一个集合的情况,但是普通集合(set)本身是可变的,那么它的实例就不能放在另一个集合中(set中的元素必须是不可变类型)。
所以,frozenset提供了不可变的集合的功能,当集合不可变时,它就满足了作为集合中的元素的要求,就可以放在另一个集合中了。

四、python常用运算符

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值