三儿的Python菜鸟历程--03--Python基本数据类型(理论笔记)


总览

在这里插入图片描述


3.1 数字类型

3.1.1 整数类型

  • 整数类型与数学中的整数概念一样,理论取值[-∞,+∞],只要计算机有足够的内存能够存储,Python程序可以使用任意大小的整数。一般认为整数类型没有取值范围。

整数类型有四种进制表示,前缀分别如下:

0b 二进制、0o八进制、0x十六进制、十进制默认没有前缀
其中字母大小写均可,但为了规范好看要统一,即用大写就都用大写,用小写就都用小写。

3.1.2 浮点数类型

  • 浮点数与数学中的实数概念一样。表示带小数的数值。Python中的浮点数类型必须带有小数部分,小数部分可以是0.

浮点数有两种表示方法,如下:

  • 十进制形式的一般表示法:10105.16422
  • 科学计数法:1.02e3,1.568e-3
  • Python中的浮点数只有十进制表示,没有其他进制。
  • 浮点数的数值范围和小数精度受到计算机系统的限制,一般来说取值范围在-10^308 ~10 ^308之间,浮点数之间的区分精度约为2.22*10 ^-16。

Python的浮点数存在一个不确定尾数的问题。即两个浮点数运算结果却可能不同。

>>>0.1 + 0.2 == 0.3
False

由于不确定尾数的存在使得浮点数在判断时可能出错,为了解决这个问题,需要使用round()函数去除不确定尾数。
round()函数是一个四舍五入函数,能够对数值进行四舍五入操作。

>>>round(1.2346,2)
1.23
>>>round(1.2346,3)
1.235

3.1.3 复数类型

复数表示数学中的复数类型。Python中将复数看作二元有序实数对(a,b),a表示是实数部分,简称实部,b表示虚数部分,简称虚部。
虚数部分使用J或者j作为虚部后缀,需要注意,b为1时,需要写成1j而不能和数学中那样只写j。
复数类型的实部和虚部都是浮点数类型,对于复数z分别使用 z.real和z.imag分别获取z的实部和虚部。

3.2 数字类型的运算

3.2.1 数值运算操作符

Python提供了9个基本运算符,使用习惯与数学基本一致。

操作符及运算描述
x+yx与y之和
x-yx与y之差
x*yx与y之积
x/yx与y之商,结果是浮点数
x//yx与y整数商,即不大于x和y之商的最大整数
x%yx与y之商的余数,也称模运算
-xx的负值,即x*(-1)
+xx本身
x**yx的y次幂。

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

  • 整数和浮点数混合运算,输出是浮点数。
  • 整数之间运算,产生结果类型与操作符相关,除法运算(/)的结果是浮点数。
  • 整数或浮点数与复数运算,输出结果是复数。

所有的二元运算符都能与赋值运算符相连,形成增强赋值操作符(+=,-=,*=,/=,//=,%=,**=)。用op表示这些二元运算操作符,增强赋值操作符用法如下:
x op= y 等价于 x = x op y。

【提示】空格
增强赋值操作符中op与=之间不能增加空格。

3.2.2 数值运算函数

函数不同于操作符,其表现为对参数的特定运算。Python解释器自身提供了一些预装函数,称为“内置函数”。如表所示:

函数描述
abs()x的绝对值
divmod()(x//y,x%y),输出为二元组形式(也称为元组类型)
pow(x,y)或pow(x,y,z)x* * y或(x* *y)%z,幂运算
round(x)或round(x,d)对x四舍五入,保留d位小数,无参数d则返回四舍五入的整数
max(x1,x2,……,xn)x1,x2,.……,xn的最大值,n没有限定,可以任意数量
minx1,x2,……,xn)x1,x2,.……,xn的最小值,n没有限定,可以任意数量

3.3 字符串类型及格式化

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

  • 单行字符串是由一对单引号或者一对双引号作为边界表示,使用双引号的时候,单引号可以作为字符串的一部分,使用单引号的时候,双引号可以作为字符串的一部分。
  • 多行字符串使用三单引号或者三双引号作为边界表示。

这里解释一下关于前边所说的多行注释。实际上Python并不存在专用的多行注释。使用三引号当做多行注释其实是因为表述方便,而非是说三引号是多行注释。其本质是定义了一个多行字符串,但是不调用,摆在那里看而已。

【注】特殊字符 反斜杠符号(\)
Python中他拥有两种含义:转义续行

  • 转义:与该字符后相邻的一个字符共同组成一个新含义。例如 \n表示换行,\表示反斜杠,\t表示制表符(tab)等。
  • 续行:当一行中表达的逻辑代码过长或处于美观增加阅读性的考虑,通常需要将超长代码在连续的不同行上表示。续行不仅仅存在于上一篇中所说的字符串续行,在更广泛的代码编写中都有应用。

3.3.1 字符串的索引

对字符串中某个字符的检索叫成为索引。
详情可以看上一篇的2.3.3节

3.3.2 字符串切片

对字符串的某个子字符串或区间的检索称为切片。使用方法如下
‘字符串或字符串变量’[m:n]
切片获取字符串从m到n(不包括n)的子字符串。m和n是字符串的索引序号,可以混合使用正向递增序号和反向递减序号。

3.3.3 format()方法的基本使用

字符串中整合变量时需要使用字符串格式化方法。Python语言推荐使用format()格式化方法。
“模板字符串”.format(逗号分割的参数)

>>> "{}是要填充的文字".format("孔子")
'孔子是要填充的文字'

模板文字是一个有字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用{}表示,对应format()方法中的参数。
关于槽有以下两个点注意:

  • 如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应format()方法中不同的参数,例如:
>>>"{}是一门{}".format("python","编程语言")
输出结果:python是一门编程语言
  • 槽是有序号的,在不指定的时候默认按照出现的前后进行编号对应。但也可以指定序号,例如:
>>>"{1}是一门{0}".format("python","编程语言")
输出结果:编程语言是一门python
  • 如果希望在模板字符串中直接输出大括号,请使用{{表示{,}}表示}。

3.3.4 format()方法的格式控制

format()的槽除了可以表示序号,还可以表示格式控制信息

:填充对齐宽度.精度类型
引导符号用于填充的单个字符<左对齐,>右对齐,^居中对齐槽设定的输出宽度数字的千位分隔符小数的精度或字符串的最大输出长度整数类型(b,c,d,o,x,X)浮点数类型(e,E,f,%)

3.4字符串类型操作

3.4.1 字符串操作符

操作符及运算描述
x+y连接两个字符串x和y
x * n 或 n * x复制n次字符串x
x in s如果x是s的子字符串,返回True,否则返回False

3.4.2 字符串处理函数

Python语言提供了一些对于字符串处理的内置函数。如下

函数描述
len(x)返回字符串长度
str(x)返回任意类型x对应的字符串形式
chr(x)返回Unicode编码x对应的单字符
ord(x)返回单字符x表示Unicode编码
hex(x)返回整数x对应的十六进制的小写形式字符串
oct(x)返回整数x对应的八进制的小写字符串形式

3.4.3 字符串处理方法

方法是程序设计中有一个专有名词,属于面向对象程序设计领域。方法也是函数,只是调用方法不同。

方法描述
str.lower()返回字符串str的小写字符副本
str.upper返回字符串str的大写字符副本
str.split(sep = None)返回一个根据sep将str分隔成的各部分组成,省略sep默认按照空格分隔
str.count(sub)返回sub字符串出现的次数
str.replace(old,new)返回字符串str的副本,所有的old子串被替换为new子串
str.senter(width,fillchar)字符串居中函数,fillchar参数可选
str.strip(chars)从字符串str去掉在其左侧和右侧chars中出现的字符
str.join(iter)将iter变量的每一个元素后增加一个str字符串

3.5类型判断和类型间转换

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

>>> type(10.10)
<class 'float'>
>>> type('10.10')
<class 'str'>
>>> type(1010)
<class 'int'>
>>> type([])
<class 'list'>

[注意]type()的输出
type(‘10.10’)的输出不是<class ‘str’>,这只是一种内部表达,需要进行类型比较的时候不能使用字符串比较方式进行判断,例子如下:

>>> type('a') == type(123)
False
>>> type(123) == type(456)
True

Python除了可以查看变量的类型以外,也提供了一些变量间的转换函数,如下所示:

函数描述
int(x)将x转换成int类型,x可以是浮点数或者字符串
float(x)将x转换成float类型,x可以是整数或者字符串
str(x)将x转换成string类型,x可以是整数和浮点数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值