【知识篇】Python基本数据类型

一、数字类型

Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。

1010是一个整数类型,10.10是一个浮点数类型, 10+10j是一个复数类型

1.1 整数类型

Python整数类型与数学中的整数概念一致,一般认为没有取值范围限制。

整数类型有4种进制表示十进制二进制 (0b 0B)八进制 (0o 0O)十六进制 (0x 0X)

默认情况,整数采用十进制,其他进制需要增加引导符号

不同进制的整数类型数值之间可以直接运算。

1.2 浮点数类型

带有小数点及小数的数字。

Python语言中的浮点数类型必须带有小数部分小数部分可以是0。例如:1010是整数, 1010.0是浮点数。

浮点数有2种表示方法十进制形式的一般表示 和 科学计数法 表示。除十进制外,浮点数没有其他进制表示形式

(科学计数法使用字母e或者E作为幂的符号, 以10为基数)

Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠” 。

“不确定尾数”问题

Python语言中的两个浮点数运算,有一定概念在运算结果后增加一些“不确定的”尾数。

上例中原本0.1+0.3应该等于0.3的,可是因为小数在计算机里面的存储其实只能存储一个接近值,实际得到的是0.30000000000000004。这是因为受限于计算机表示浮点数使用的存储宽度,0.1不完全等于0.1,计算机在存储0.1时存储的是最接近0.1的二进制数,那关于0.1的小数运算自然也会让结果变得及接近但又不是了。

解决“不确定尾数”问题

使用 round(x,d) 函数,这是一个四舍五入函数,d为保留的小数位数,x是待进行四舍五入的数

1.3 复数类型

复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位” 。含有虚数单位的数被称为复数。(j^2=-1)

Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分, 简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“ ”或者“ ”来表示。需要注意,当b为1时, 1不能省略,即需要用1j表示复数,而j则表示Python程序中的一个变量。

复数类型中实部和虚部都是浮点类型,对于复数z,可以用 z.realz.imag分别获得它的实数部分和虚数部分。

二、数字类型的运算

2.1 数值运算操作符

Python提供了9个基本的数值运算操作符:

加减乘除运算与数学含义相同,Python额外提供了整数除(//)运算,即产生不大于x与y之商的最大整数

模运算求余(%)在编程中十分常用,主要应用于具有周期规律的场景。例如:一个星期7个,用day代表日期,则day%7可以表示星期几,如0代表周日,1代表周一等。

(本质上,整数的模运算n%m能够将整数n映射到【0,m-1】的区间中)

上标所有二元运算操作符(+、-、 * 、/、//、%、 **)都可以与等号(=)相连,形成增强赋值操作符+= 、-= 、 *= 、 /= 、//= 、%= 、 **=)。

用op表示这些二元运算操作符,增强赋值操作符的用法如下:

数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:

a 整数浮点数混合运算,输出结果是浮点数

b 整数之间运算,产生结果类型与操作符相关,除法运算(/)运算的结果是浮点数

n 整数浮点数与复数运算,输出结果是复数

2.2 数值运算函数

Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关:

2.3 数值比较运算

Python提供了6个比较运算符:

三、字符串类型及格式化

计算机程序经常用于处理文本信息,文本信息在程序中使用字符串类型来表示

字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。

单行字符串可以由一对单引号(')双引号(") 作为边界来表示,单引号和双引号作用相同

多行字符串可以由一对三单引号(''')三双引号(""")作为边界来表示,两者作用相同。

3.1 转义字符

Python语言转义符: \(反斜杠)

例如:\n 表示换行\\ 表示反斜杠\' 表示单引号\" 表示双引号\t 表示制表符(TAB)等。

3.2 字符串的索引

字符串是一个序列类型,作为字符序列,字符串可以对其中单个字符或字符片段进行索引。

对字符串中某个字符的检索称为索引。

索引的使用方式如下

字符串包括两种序号体系正向递增序号反向递减序号

如果字符串长度为L正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1

反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L

字符串以Unicode编码存储,字符串的英文字符和中文字符都算作1个字符

可以通过Python默认提供的 len() 函数获取字符串的长度。

3.3 字符串的切片

对字符串中某个子串或区间的检索被称为切片

切片的使用方式如下:

<字符串或字符串变量> [ N : M ]

切片获取字符串从N到M(不包括M)的子字符串,其中N,M为字符串的索引序号,可以混合使用正反序列号。

使用切片时需要注意的点

a 切片要求N和M的值都要在字符串的索引区间里;

b 如果N>=M,则返回空字符串;

c 如果N缺失,则默认将N设为0;

d 如果M缺失,则默认表示到字符串结尾;

3.4 format()方法的基本使用

在字符串中整合变量时需要使用字符串的格式化方法。

字符串格式化用于解决字符串和变量同时输出时的格式化安排问题

Python推荐使用.format()格式化方法,其使用方式如下:

< 模板字符串 > .format( <逗号分隔的参数> )

其中,模板字符串是一个由字符串和槽({ })组成的字符串,用来控制字符串和变量的显示效果。

如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应变量。

3.5 format()方法的格式控制

format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息。语法如下:

一般需要进行格式控制书写的话,规范书写顺序就是上表出现的信息从左往右依次书写

其中,<填充>、<对齐>和<宽度>可以当作一组记忆。

<宽度>:指当前字段输出的宽度。

  如果槽宽度设定值比字符串大,则字符串按照指定对齐方式在宽度设定值内对齐

  如果槽宽度设定值比字符串小,则使用字符串宽度。

<对齐>:对齐有三种分别是左对齐“<”右对齐“>”居中对齐“^”

  (对齐一般在槽宽大于字符宽时使用效果最明显)

<填充>:当输出字符串时槽设定了大于其宽度的槽宽,多出来的部分默认以空格填充,而填充符号是可以人为修改的,填充字符只能有一个。

(哈哈发现如果要设置填充符号还必须设置对齐方式且“槽宽”大于“字宽”)

不难发现,上例中槽的格式设置的书写规范,就是以“:<填充><对齐><宽度>”的顺序书写的。

此外,还有另一组可以一起记忆,即< , >、<.精度>和<类型>

< ,>:就只是用来显示数字类型的一个千位分隔符。

<.精度>:以小数点(.)开头,填的是一个具体的数值。

对于浮点数,精度表示小数点后面的有效位数

对于字符串,精度表示输出的最大长度

(如果小数点后面保留长度超过应输出的长度,以输出长度为准)

<类型>:表示输出整数和浮点数类型的格式规则。(format里面的内容要是数字类型)

对于整数类型,输出格式包括如下6种

b:输出整数的二进制方式;

c:输出整数对应的Unicode字符;

d:输出整数的十进制方式;

o:输出整数的八进制方式;

x:输出整数的小写十六进制

X:输出整数的大写十六进制

对于浮点数类型,输出格式包括如下4种

e:输出浮点数对应的小写字母e的指数形式

E:输出浮点数对应的大写字母E的指数形式

f:输出浮点数的标准浮点形式

%:输出浮点数的百分比形式

(浮点数输出时尽量使用<.精度>表示小数部分的输出长度,有助于更好地控制输出格式)

四、字符串类型的操作

4.1 字符串操作符

针对字符串,Python语言提供了3个基本操作符:

4.2 字符串处理函数

Python语言提供了一些对字符串处理的内置函数:

4.3 字符串处理方法(重点)

方法也是一个函数,只是调用方式不同。

函数采用func(x) 方式调用,而方法则采用 <a>.func(x)形式调用。方法仅作用于前导对象<a>。

下面来每个详讲一遍:

srt.lower()和str.upper()是一对方法,用于将字符串里的英文字符变成大写或小写。

(上例可以直观感受到这两个方法的作用,真的只作用于英文字符)

str.split(sep)是一个十分常用的字符串处理方法,它能够根据“sep”分隔字符串str。

(sep不是必须的,默认情况下是“空格”,sep可以是单个字符也可以是一个字符串)

str.count(sub)方法返回字符串sstr中“sub”子串的出现次数。(sub是一个字符串)

str.replace(old,new)方法是将字符串str中出现的old字符串替换成new字符串。

(old和new的长度可以不同)

也可以使用replace()方法去掉字符串中的特定字符或字符串:

str.center(width,fillchar)方法返回长度为width的字符串。

其中,str处于新字符串中心位置,两侧新增字符采用fillchar填充。

(当width小于字符串长度时,返回str;fillchar是单个字符,默认也是空格。)

str.strip(chars)从字符串str中去掉其左侧和右侧chars中列出的字符。

chars是一个字符串,其中出现的每一个字符都会被去掉。

(要去除的字符一定得在字符串的左右两侧)

str.join(iter)中iter是一个具备迭代性质的变量,该方法将str字符串插入iter变量的元素之间,形成新字符串。(简单来说,.join()方法能够在一组数据中增加分隔字符)

五、类型判断和类型间转换

5.1 类型判断

Python语言提供type(x)函数对变量x进行类型判断,适用于任何数据类型。

5.2 类型间转换

数值运算操作符可以隐式地转换输出结果的数字类型。例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。

此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值