什么是不可变数据类型?
数据类型是指一种数据的组织形式,也就是我们所说的类或者说对象。我们已经知道在Python里“一切皆为对象,没有赋值只有引用”,数据类型的不可变,是指我们不能改变对象的值,如果我们想改变它只能创建一个新的对象然后引用这个新对象。举个例子,int(整数)是不可变的数据类型,我们进行如下操作
我们会发现两次的地址变化了,这就是不可变数据类型的特点(注:整数类型只有-5---256会这样)
Python内置的不可变数据类型有哪些?
不可变数据类型有三类:数值、字符串以及元组。
数值。数值类型主要有三类
- a = int(1) #创建一个 int 类的对象,值为 1
复制代码- a = int('12') #将字符串类型转换为整数类型
复制代码- a = int(3.14) #将浮点类型用截断的方式转换为整数类型
复制代码 我们输入如下代码查看它的属性及方法
得到的部分结果如下图
我们这里关注它的常用操作
- a.bit_length() #返回a的二进制表示的长度
复制代码 查看它的属性及方法如下
除去与整数一样的那些常用操作外,还有如下操作
- a.as_integer_ratio() #返回一个整数对,第一个整数除以第二个整数等于这个浮点数
复制代码 常用操作的功能主要有求共轭、实部、虚部值,操作与int和float一样
- bool。这是一个比较特殊的数据类型,创建方式如下
由于它把除0、0.0、None、False、空的容器比如[]、{}、()、set()、range(0)以外的值都当作真,所以其基本操作除数值的一些基本操作以外主要是位级运算
string。字符串类型,创建方式如下
- a = str(3.14) #将数值型转换为字符串
复制代码 我们查看它的属性和方法结果如图
部分功能介绍如下
- #*****Regula Function******#
复制代码- n.capitalize()#返回首字母大写的字符串 output : "Acdee"
复制代码- n.casefold()#返回小写字母 output : "abcdee" 注:lower() 只对 ASCII 也就是'A-Z'有效
复制代码- n.center(10,'*')#返回一个以字符串为中心,两边填充至指定宽度的字符串 output : '**abcdee**'
复制代码- n.count('ab')#返回指定字符或字符串在字符串中出现的次数 output : 1
复制代码- n.encode(encoding='UTF-8',errors='strict')#返回编码后的字符串
复制代码- n.endswith('e')#判断是否以指定元素结尾 ouput : True
复制代码- n.expandtabs(tabsize = 1)#指定转换字符串中的 tab 符号('\t')转为空格的字符数
复制代码- n.find('e')#返回第一次出现该元素的位置 outpu : 4 未找到时返回-1
复制代码- #"{}:计算机{}的CPU 占用率为{}%。".format("2016-12-31","PYTHON",10)
复制代码- #Out: '2016-12-31:计算机PYTHON的CPU 占用率为10%。'
复制代码- n.index(str,beg=0,end=len(string))#同find函数,区别是元素不在字符串指定范围内时会抛出异常
复制代码- n.isalnum()#如果字符串中的所有字符都是字母数字且至少有一个字符,则返回true
复制代码- n.isalpha()#如果字符串至少有一个字符并且所有字符都是字母则返回True
复制代码- n.isdecimal()#如果字符串中的所有字符都是十进制字符,并且至少有一个字符,则返回true。
复制代码- n.isdigit()#如果字符串中的所有字符都是数字并且至少有一个字符,则返回true
复制代码- n.isidentifier()#如果字符串是符合语言定义的有效标识符,则返回true.
复制代码- n.islower()#如果字符串中的所有cased字符都是小写字母,并且至少有一个cased字符,则返回true
复制代码- n.isnumeric()#如果字符串中的所有字符都是数字字符,并且至少有一个字符,则返回true
复制代码- n.isprintable()#如果字符串中的所有字符都可打印或字符串为空,则返回true
复制代码- n.isspace()#如果字符串中只有空格字符,并且至少有一个字符,则返回true
复制代码- n.istitle()#如果字符串是一个标题字符串,并且至少有一个字符,则返回true
复制代码- n.isupper()#如果字符串中的所有cased字符都是大写且至少有一个cased字符,则返回true
复制代码- '_'.join(n)#返回一个字符串,它是iterable中字符串的串联。输出为a_b_c_d_e_e
复制代码- n.ljust(width[, fillchar])#左对齐后面填充
复制代码- n.lower()#返回字符串的一个副本,并将所有字符转换为小写字母。
复制代码- n.lstrip([chars])#返回删除前导字符的字符串的副本 一般默认删除空格
复制代码- n.maketrans(x[, y[, z]])#这个静态方法返回一个可用于str.translate()的转换表
复制代码- n.partition(str)#在sep的第一个出现处拆分字符串,并返回包含分隔符之前的部分,分隔符本身和分隔符之后的部分的三元组。
复制代码- n.replace(old, new[, count])#返回所有出现的子字符串old替换为new的字符串的副本。如果给出可选参数count,则只会替换count`次数
复制代码- n.rfind(sub[, start[, end]])#返回找到substring sub的字符串中的最高索引
复制代码- n.rindex()#和rfind()一样,但是在找不到子字符串sub时引发ValueError
复制代码- n.rjust(width[, fillchar])#返回字符串右对齐的长度为width的字符串
复制代码- n.rpartition(str)#在sep的最后出现处拆分字符串,并返回包含分隔符之前的部分,分隔符本身和分隔符之后的部分的三元组
复制代码- n.rsplit(sep=None, maxsplit=-1)#返回字符串中的单词列表,使用sep作为分隔符字符串。如果给出maxsplit,最多分割maxsplit次,此方法从最右边开始分割。
复制代码- n.rstrip([chars])#返回删除了尾随字符的字符串的副本。chars参数是一个字符串,指定要删除的字符集
复制代码- n.split(sep=None, maxsplit=-1)#返回字符串中的单词列表,使用sep作为分隔符字符串。如果给出maxsplit,最多分割maxsplit次
复制代码- n.splitlines([keepends])#返回字符串中lines的列表,在lines边界处突破
复制代码- n.startswith(prefix[, start[, end]])#如果字符串以prefix开头,则返回True,否则返回False
复制代码- n.strip([chars])#返回删除前导字符和尾随字符的字符串副本。默认空格
复制代码- n.swapcase()#返回大写字符转换为小写字符串的副本,反之亦然。
复制代码- n.title()#返回字符串的字幕版本,其中字以大写字符开头,其余字符为小写字母。
复制代码- n.translate(table)#通过给定的转换表返回每个字符已映射的字符串的副本
复制代码- n.upper()#返回字符串的所有字符转换为大写的副本
复制代码- n.zfill(width)#返回一个左边填充了ASCII0数字的字符串的副本,以产生一个长度为width的字符串。
复制代码 注:字符串是不可变数据类型,所以不能用索引s[2] = 's'去改变其中的值,可以用分片的方法s[:2] + 's' + s[3:]
tuple。元组是一个元素集合,它的创建方式如下
- a = tuple("hello") #将字符串类型转换为元组
复制代码- a = tuple([1,2,3]) #将列表类型转换为元组
复制代码- a = tuple({1,2,3}) #将集合类型转换为元组
复制代码- a = tuple({1:2}) #将字典类型的键转换为元组
复制代码 元组的主要操作是计数和索引,不允许修改值但是可以组合
- a.index('b') #返回 a 中 'b' 第一次出现的索引
复制代码 |
|