2 数据类型与转换

引导:

部分现实世界的东西、概念都可在python世界里找到对应,比如:现实世界中最常见的数字,文字,符号在Python世界就是:【数据】

2 数据类型与转换

数据类型

在现实世界的镜像——Python里,最常用的数据类型有三种——字符串(str)、整数(int)和浮点数(float)。

字符串

字符串的识别方式非常简单——有层名为【引号】的皮,只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。

常见的字符串类型

2 数据类型与转换

关于字符串,大家一定要记得:字符串类型必须有【引号】的辅助。不然字符串就只能被报错,无尽地呻吟~

小结一下

2 数据类型与转换

整数

2 数据类型与转换

有的时候,某些数据它脱了【引号】的马甲,也照样能打印出来。例如在上一关我们见过的【print(520)】。
整数它其实就是数学意义的整数
常见数据类型中的第二种:整数,整数英文为integer,简写做int。Python世界的整数其实和现实世界数学中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。

比如在下面的代码框中,赋值语句中的数字都是整数:

2 数据类型与转换

小练习:
请问以下三个数据【'hello mirror world'】、【108】、【''108''】的数据类型分别为?
由单引号括起来的【'hello mirror world'】和【''108''】是字符串,无引号的【108】是整数,"108" 只要有引号,就会按照字符串输出了

整数其实是一个不带小数点的数字,可以不穿名为引号的马甲,直接跟print()函数组团搞输出,比如下列代码:

2 数据类型与转换

浮点数

2 数据类型与转换

计算机里浮点数的运算是不精确的,会有四舍五入的误差。

请你先心算一道题【0.55+0.3】

2 数据类型与转换

Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:
进制转换

2 数据类型与转换

而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

总结:

2 数据类型与转换

如果详细进行分类,数据类型可以分为下面这么多类型,目前先说这三种,之后章节会详细补充

2 数据类型与转换

数据的应用

四则运算

Python里的整数、浮点数和数学意义的整数、小数是一样的,它最重要的作用是与运算符号结合,进行数学计算。接下来我们看一下Python如何利用整数,浮点数进行四则运算。

Python世界的运算符

2 数据类型与转换

运算优先级:Python世界的运算优先级,和我们平时的计算优先级是一样的。

2 数据类型与转换
2 数据类型与转换

我们来看看【print((5025-525)/100+18*17)】的运算顺序:最先计算括号里的【5025-525】。
然后将【5025-525】的结果除以100,第三步则计算【18*17】,最后将除法和乘法的结果相加。

字符串的拼接

2 数据类型与转换

最简单的相同的字符串拼接:
我有以下几个零碎的『词语』——变量,然后想合成这样一句话:我是北清编程学员007,在镜像世界里进行身份验证,你要怎么做呢?

2 数据类型与转换

常见的拼接错误:

2 数据类型与转换

报错【TypeError: Can't convert 'int' object to str implicitly】(无法隐式将“int”对象转换为str)

发现了【b = 2】中的【2】没有【引号】和【小数点】,是一个整数,原来『奸细』就是它。难怪当时在终端区会给我报错说:数据类型不同

检测数据类型的函数type()

2 数据类型与转换

我们要学会善用Python的魔法,使用Python中一个已有的,既简单又实用的函数,来帮助我们查询不确定数据的类型。而这个函数,就是type()函数。只需把查询的内容放在括号里就行

2 数据类型与转换

在type()函数的帮助下,我们知道也可以查找出字符串里面出现的『奸细』——整数。
为什么不同类型的数据不能拼接在一起呢?一句话:圈子不同不相融。

数据转换

函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符(参考ASCII表)
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

数据转化函数有以上这么多,但是本次先学常见的三项

转换成字符串类型
思考:如何把两个不同类型的数据拼接在一起?

2 数据类型与转换

str()函数转法为字符串
str()函数可让其他类型的数据分身成str类型
str()函数能将数据转换成其字符串类型,不管这个数据是int类型还是float类型,只要放到括号里。这个数据就能摇身一变,成为字符串类型。

2 数据类型与转换

引号强制转化为字符串:
借用【引号】的帮助,比方说153=1x1x1+5x5x5+3x3x3是个水仙花数这个结果,我也可以写成下面这样:

2 数据类型与转换

小练习:
两种方法打印出结果:镜像世界的1天等于现实世界的666天

2 数据类型与转换

转换成整数类型:

int()函数

2 数据类型与转换

格式:
int(转换的内容)

例如:
计算出number1和number2这两个变量的和

2 数据类型与转换

注意:
只有符合整数规范的字符串类数据,才能被int()强制转换。
什么叫做符合规范?
两个可以:
整数形式的字符串比如'6'和'1',可以被int()函数强制转换。
浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换

2 数据类型与转换

两个不可以:
文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换
小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换

2 数据类型与转换

float()函数

2 数据类型与转换

两个要点:
float()函数也可以将整数和字符串转换为浮点类型
如果括号里面的数据是字符串类型,那这个数据一定得是数字形式

2 数据类型与转换

总结:

2 数据类型与转换

总结:

2 数据类型与转换

练习:

请运用所给变量,使用数据转换str()、int()、float()及数据拼接符号+,打印一句话: 脸黑怪我咯7张蓝票一个SSR都没有

所给变量:
slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'

解析:
1.由于变量中有小数形式的字符串'7.8',所以需要使用转换函数将此变量转换为浮点型
2.转换后使用int()函数取整
3.由于数据拼接需要变量为字符串形式,所以需要将变量转化为字符串类型
4.最后数据拼接,得出结果

答案(这里的小数类字符串的转换要细品一下):

2 数据类型与转换

补充

输出-格式化操作符的使用以及f-

占位符形式:

占位表:

2 数据类型与转换

上表中很多占位符不常见,无需都记,常见的占位符有:

%d 以整数输出
    %3d 输出时,数据占3个字符宽度
    %03d 输出时,数据占3个字符宽度,当数字不足三个字符串时,前缀补0
    %-3d 输出时,数据占3个字符宽度,左对齐
%f 以小数形式输出
    %.3d 小数点后保留位数是3位
%s 以字符串形式输出

输出格式:'a 的值是 占位符1 ;b的值是 占位符2' %(值1,值2)

2 数据类型与转换
2 数据类型与转换
2 数据类型与转换

一些特殊情况:

2 数据类型与转换

f_string: f'字符串 {数据} '

2 数据类型与转换

复合赋值注意

为了简化代码,有时a=a+b会简写为a+=b

2 数据类型与转换

复合赋值先算右边

2 数据类型与转换

发布者:LJH,转发请注明出处:https://www.ljh.cool/7486.html

(0)
上一篇 2022年9月11日 上午1:58
下一篇 2022年9月11日 上午2:39

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注