当前位置: 首页 > 后端技术 > Python

Python数据类型系列(上)

时间:2023-03-26 12:50:48 Python

CDA数据分析师出品1.什么是数据学习一门新的编程语言,掌握它的底层语法是我们的??第一步。编程的最底层就是我们常说的地基。下面将从python基础中的数据类型入手。什么是数据?在计算机科学中,数据是指所有可以输入计算机并由计算机程序处理的符号媒体的总称。2、数据类型的作用python中有六种标准的数据类型。为什么要将数据分为不同的类型?就像我们日常生活中的事物一样,可以分为固态、液态、气态等。python语言中的数据也有其对应的“状态”,而且要求更为严格。不同的状态由不同类型的数据表示,不允许存在语法歧义。数据结构的意义:将以上五种数据类型整合在一起。但混合在一起并不是目的。目的是为了能够组合成一个好的结构,方便自己或他人存储或读取数据。3、数据类型系列Python数据类型按其结构分为两种类型:原子类型和结构类型。原子类型是python中最简单的数据类型,或者说是python中最原始的数据类型,只包含值的集合:数字或字符串;结构类型包含多个值,而且结构是比较复杂的集合。python中常见的结构类型可以统称为“容器”。序列(如列表和元组)、映射(如字典)和集合(集合)是容器的三种主要类型。下面将一一介绍。3.1数字类型在python中,数字类型的使用并不少见。主要用于数字之间的运算、大小比较、条件判断等。数字类型包括:整型(int)、浮点型(float)、复数(complex)、布尔型(bool)。布尔值是一种特殊类型的数字。3.1.1整数(int)在python中,int(即整型)用于表示整数,包括正整数和负整数。与其他语言相比,整数的取值范围是由机器位数(32位或64位)决定的。python整数的取值范围只和机器支持的内存大小有关,也就是说Pyhton可以表示大数,可以超出机器中的位数可以表示的取值范围。python3中整数的长度理论上是无限的(受限于计算机内存,不是真正的无限,但它的长度足够我们日常使用)。x=3#使用type函数检查变量type(x)的类型上面代码的执行结果为:3.1.2浮点型(float)python的浮点型可以理解为十进制数我们学数学,带小数点的就是浮点型。浮点表示有两种形式。第一种是带小数点的一般形式,第二种是科学记数法。当数值特别小或特别大时,python会自动将其转换为科学计数形式,如:2.5e2=2.5x102=250.x=300000000000000000000.5xtype(x)y=0.0000000000000000000025ytype(y)执行结果上面的代码是:python中浮点型的默认精度是小数点后16位,小数点越远越不精确,因为转换成二进制会出现死循环,导致在大约各省的偏差。3.1.3复数(complex)python的复数就是我们在数学中学习的复数。它由两部分组成:实部和虚部。表达式为:a+bj,a为实部,b为虚部,j为虚部(-1的平方根)。复数常用于工程领域。直接指定a,b创建x=2+3jx#通过复数函数传入参数a,b创建y=complex(2,3)y#得到实部y.real#得到虚部y。imag上面代码的执行结果是:3.1.4BooleanboolBoolean是python数字类型的一种特殊类型,因为Boolean不是用常规的数字来表示的,而是用“False”对应0和“True”对应1来表示.boolean在python2中没有定义,0表示“False”,1表示“True”,而在python3中,“False”和“True”定义为python关键字,如果输入数据不为空或者表达式为成立,它将是“真”;如果输入数据为空、数字0、None或表达式不成立,则为“False”,也可以进行布尔运算。bool(3)bool(2<3)bool(0)bool(2>3)上面代码执行后结果为:3.1.5数据操作假设x=20,y=10,Python支持以下类型运算符:·算术运算符运算优先级:幂运算>乘除>加减比较(关系)运算符赋值运算符逻辑运算符运算顺序:非>与>或成员运算符恒等运算符3.2Stringpython中字符串类型的使用很常见,可以理解为我们常说的“文本数据”。例如,“helloworld”是一个字符串。python中没有char类型,也就是说一个字符组成的数据在python中也是一个字符串。3.2.1字符串的声明在python3中,字符串类型的数据有多种声明方式:单引号('')、双引号("")、三重单引号('''''')、三重单引号('''''')引号(''''''),三个双引号(""""""),这四种声明方式作用是一样的,但要注意保持一致,即前面用单引号的字符串,并在字符串后使用单引号。如果使用其他声明方式如双引号会抛出错误。定义变量x_0='abc'x_1="abc"x_2='''abc'''x_3="""abc"""#查看变量类型type(x_0)type(x_1)type(x_2)type(x_3)上面代码执行的结果是:如果字符串本身包含单引号或者双引号,可以使用转义符""使引号失去声明字符串的作用,作为普通字符输出。使用转义字符print('Let'sgo')上面代码的执行结果为:3.2.2字符串编码Python3的字符串默认采用unicode格式编码。如果需要编码为其他格式如“utf-8”,可以通过函数encode()指定编码格式;如果导入的文件是“utf-8”等其他编码格式,可以在读取文件时加上参数encoding='utf8'来指明文件的编码格式,否则字符串会出现乱码。(查看文件编码格式)参数encoding指定读取文件的编码格式data=open("D:\python\data.txt","r",encoding="utf8")提示:在python文件头可以作为编码格式声明如下:#--coding:utf-8--,避免在与其他语言交互时由于编码格式不明确而出现乱码;读取文件时,可以先通过txt文件查看编码格式,步骤如下:·第一步:第二步:3.2.3字符串的格式化在使用字符串输出的过程中,我们往往希望一些输出字符串中指定位置的字符由定义的变量或表达式定义的值按照格式集进行转换。比如我们经常收到这样的信息:“尊敬的XXX客户,截至XXX,您的账户基本余额已低于X元,为避免宕机,请您尽快充值”,其中X的内容为指定值一定的格式显示。这是字符串的格式化输出。python3中格式化字符串有两种方式:占位符“%”和格式化函数。第二种方法是新版python中新加入的,也是官方推荐的。然而,到目前为止,大多数python用户仍然使用第一种方法。因此,建议您掌握这两种格式化方法。3.2.3.1'%'占位符格式:formatstring%valuegrouptobeoutputprint('尊敬的%s客户,截至%s,您的基本账户余额已低于%d元,以免宕机,请尽快充值'%('王小二','2019年10月22日',10))其中,格式字符串中的''%s'为转换说明符,指出插入位置,'s'表示将值转换为字符串类型输出,其他常用的转换说明符有:%d、%f,分别表示转换为十进制整数和浮点数类型。同时,可以组合添加其他符号作为辅助格式化操作符。例如“%5s”可以指定转换后的字符串的最小宽度为5,如果字符串长度小于5,会自动在字符串前补上空格。对齐方式(python默认为右对齐)。如果字符宽度小于设置宽度,字符前自动补空格print('%5s'%'王小二')print('%s'%'王小二')3.2.3.2格式化函数'formatstring'.format(待输出的值组)format()中格式字符串中的占位符{}匹配参数在待输出的值组中的位置。共有三种格式:·默认从左到右匹配·print('客户{}的账户余额为{}元'.format('王小二',8))按数字指定位置匹配print('客户{0}的账户余额为{1}元'.format('王小二',8))#顺序可以改print('客户{1}的账户余额为{0}元'.format(8,'王小二'))按关键字指定位置匹配·print('客户{name}账户余额为{money}元'.format(name='王小二',money=8))#Callablesequenceprint('客户{name}的账户余额为{money}.元'.format(money=8,name='王小二'))与"%"的格式化输出相同,格式化函数也可以设置输出字符串的格式,格式如下:{:[filling][Alignment][Mark][#][0][Width][,][.precision][type]}常用格式:设置精度浮点型,如:保留两位有效数字'{:.2f}'.format(3.1415926)#金额的千位分隔符'{:,}'.format(1234567890)#Paddingandalignment'{:>5}'.format('88')"{:*<5}".format('88')3.2.4字符串的常用函数Python内置了很多与字符串处理相关的函数,下面仅列举一些日常生活中用到的字符串函数。定义字符串变量x='Stayhungry,Stayfoolish'#Outputstringprint(x)#Viewstringlengthlen(x)以上代码的执行结果为:3.2.4.1字母处理将字母转为大写:x。upper()将字母转换为小写:x.lower()交换大小写字母:x.swapcase()将字符串的第一个字母大写:x.capitalize()将字符串的第一个单词大写:x.title()x.upper()x.lower()x.swapcase()x.capitalize()x.title()上面代码的执行结果为:3.2.4.2SplitandMerge·Split·split():转换字符串按指定的分隔符和分隔符的个数拆分语法:x.split('delimiter',delimitertimes)partition():根据指定的分隔符将字符串拆分为分隔符前、分隔符和后分隔符三部分语法:x.partition('separator')x.split('S',2)x.partition(',')上面代码的执行结果为:注:plit()和partition()默认从左向右拆分,如果要从右向左拆分,只需在函数名前添加'r'即可。·Merge·join():将字符串中的每个字符与指定字符连接·Syntax:'connector'.join(x)#用空格连接x的每个字符''.join(x)以上代码的结果执行是:3.2.4.3搜索指定字符串Count():返回指定字符串被找到的次数语法:x.count('搜索字符串',[搜索起始位置],[搜索结束位置])find():查找指定字符串并返回其位置,如果没有找到则返回'-1'语法:x.find('查找字符串',[查找起始位置],[查找结束位置])·index():查找指定的字符串并返回它的位置,如果找不到则报错语法:x.index('stringtobesearched',[searchstartposition],[searchendposition])·#注意python区分大小写x.count('Stay',0,24)x.count('Stay',0,12)x.find('foolish')x.find('Foolish')x.index('foolish')x.index('Foolish')上述代码的执行结果为:3.2.4.4替换指定字符串replace():用新字符替换字符串中的指定字符语法:x。replace('oldcharacter','newcharacter',[最大替换次数])x.replace('foolish','FOOLISH',1)上面代码的执行结果为:注意:如果需要删除string指定字符,使用replace()将指定字符替换为空字符。3.2.4.5删除前后指定字符strip():删除字符串前后的指定字符或字符序列(默认为空白:/n、/r、/t、''),返回后的值删除语法:x.strip(['要删除的字符/字符序列'])#删除字符串前后的空格x='Stayhungry,Stayfoolish'x.strip()#删除前后指定的字符thestring'#'y='-Stay-hungry,Stay-foolish-'y.strip('-')上面代码执行的结果是:注意:strip()只对字符串的正反面进行操作,上例中字符串y中间的字符'#'没有被删除;并且删除字符串序列时不考虑字符顺序,即只要字符串序列中有字符,就删除。3.2.4.6元素判断x.startswith('str'):判断字符串是否以'str'开头x.endswith('str'):判断字符串是否以'str'结尾x.isalnum():判断是否为astringisalllettersornumbersx.isalpha():判断一个字符串是否全是字母x.isdigit():判断一个字符串是否全是数字x.islower():判断一个字符串是否全是字母小写字母x.isupper():判断字符串是否全部为大写字母。获取更多优质内容,可以前往:当前疫情有所缓和,也是提升自我、为未来蓄力的好时机——准备好头发!