【python基础知识】1.数据类型、数据应用、数据转换

简介: 【python基础知识】1.数据类型、数据应用、数据转换

数据类型


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


字符串


首先,我们来认识一下字符串,字符串英文string,简写str。

name='千寻'
print("Let's play")

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


在这组代码里,【‘千寻’】、【“Let’s play”】都属于字符串类型。


字符串,顾名思义,就是由一个个字符串起来的组合,字符可以是一个数字、一个字母、一个文字,甚至是一个符号。字符串可以表达现实世界里的词、语句、表达式等。


示例代码:

Chinese = '镜像世界'
English = "mirror world"
number = "666"
symbol = '''科A!@'''
mixture = '镜像世界mirror world666科A!@'
print(Chinese)
print(English)
print(number)
print(symbol)
print(mixture)

运行结果:

镜像世界
mirror world
666
科A!@
镜像世界mirror world666科A!@

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


小结


下面,我们来小结一下字符串的知识点。

1.png

整数


可是有的时候,某些数据它脱了【引号】的马甲,也照样能打印出来。例如我们见过的【print(520)】。


这就是我们要介绍的,常见数据类型中的第二种:整数,整数英文为integer,简写做int。Python世界的整数其实和现实世界数学中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。

2.png

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

a = 10
b = -60
c = 6841
d = 0


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

# 打印整数
print(666)
# 打印结果
666

我们已经知道了字符串有【引号】的保护,可以和符号及其他文字类数据,譬如中文、英文随意组合。


而整数脱掉了【引号】马甲,只能『单独行动』。一旦碰上符号及其他文字类数据,譬如中文、英文,立马被报错秒杀。


比如像这样:

# 打印数据
print(6真实)
print(6virtual)
# 终端显示结果:报错:无效语法
SyntaxError: invalid syntax

整数是不是很简单,它其实就是数学意义的整数。


小结


下面,我们来总结一下整数这部分的知识点:

3.png

浮点型


那数学意义上的小数在python中怎么表示呢?它就是我们常见三种数据类型中的最后一种:【浮点数】。4.png

浮点数非常好识别,它比整数多了一个小数点『.』,比如下列代码中的数字都是浮点数。

1.0
3.14159
-0.33

浮点数的英文名是float,与整数(int)和字符串(str)不同,浮点数没有简写。


浮点数可能让你有点眩晕,这是因为,与【整数运算结果永远精确】的特点不同,计算机里浮点数的运算是不精确的,会有四舍五入的误差。这什么意思呢?


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


然后我们再让Python算一下,请直接点击运行按钮,并阅读答案:

print(0.55+0.3)

运行结果:

0.8500000000000001

哎?为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.55和0.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

# 进制转换
0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

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


然后,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。


小结


我们来看一下浮点数这部分的主要知识:

5.png

以上,就是我们最常接触的三种数据类型:字符串、整数、浮点数的全部内容了。

7.png

数据的应用


现在,你已经认识了字符串、整数、浮点数,掌握了它们的初级使用,下面我们来学以致用一下。


四则运算


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


但是Python世界的算数运算符,和我们平时在纸上写的运算符号有相同点,也有不同点。


首先,我们来看看Python世界的运算符。

8.png

不过,对于这么多的算术运算符,我建议你先看一遍,有个大致的印象就行。你可以先把这张图保存上,等用的时候再找出来,对应着查阅就可以。


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

9.png

下面,就请你来跑一下这些代码。

print(499*561+10620-365)
print((5025-525)/100+18*17)

运行结果:

290194
351.0

我们来看看【print((5025-525)/100+18*17)】的运算顺序:最先计算括号里的【5025-525】。


然后将【5025-525】的结果除以100,第三步则计算【18*17】,最后将除法和乘法的结果相加。


除此之外,在现实世界里,我们可以将不同的词组合成一句话,那在镜像世界——Python里是怎样的一个操作?


字符串的拼接


比方说,我有以下几个零碎的『词语』——变量,然后想合成这样一句话:我是CSDN学员007,在镜像世界里进行身份验证,你要怎么做呢?

hero = '我'
organization = 'CSDN'
identity = '学员'
action = '是'
ID = '007'
# 输出结果
我是CSDN学员007

这就涉及到了我们下一个知识点——字符串拼接。


字符串拼接的方法可简单了,就是利用字符串拼接符号【+】,将需要拼接的变量连在一起就行了。


比如,上面的例子,我可以这么写:

hero = '我'
organization = 'CSDN'
identity = '学员'
action = '是'
ID = '007'
print(hero+action+organization+identity+ID)

有了拼接符号,我不仅可以输出【我是CSDN学员007】,还可以调整变量的拼接顺序,输出不同的内容。


下面我们就来试一下,请你补全下列代码,同时打印出两个结果:【结果1】我是CSDN学员007;【结果2】CSDN学员007是我。【要点提示:print()函数,拼接符号+,无需标点符号,输出结果需与要求一模一样】。


参考代码:

hero = '我'
organization = 'CSDN'
identity = '学员'
action = '是'
ID = '007'
print('【结果1】'+hero+action+organization+identity+ID)
print('【结果2】'+organization+identity+ID+action+hero)

运行结果:

我是CSDN学员007
CSDN学员007是我

学会了字符串拼接,就能让我们的数据整合更为灵活,组合出任意我们想要的内容。

这就是我们字符串拼接部分的要点:

10.png

但是现在,你已经不是镜像世界的小萌新了,是可以自由穿梭于现实世界和镜像世界的英雄了。那怎么可以在镜像世界里更『6』呢,我们要学会施展数字法术,输出【我的镜像世界通行密码是153】。


为了输出结果,我们是不是可以把代码写成这样?

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'
print(who+destination+code+action+number)

梦想是美好的,但现实是残酷的,我们立马被报错【TypeError:can only concatenate str (not “int”) to str】(类型错误:只能将字符串与字符串拼接)无尽地呻吟。


虽然通过报错提示,我知道了错误来源于print()函数内,数据类型的拼接错误。


但是到底是哪个数据类型不对呢?我们观察上面代码里变量的值,发现了【number = 153】中的【153】没有【引号】和【小数点】,是一个整数,原来『奸细』就是它。难怪当时在终端区会给我报错说:数据类型不同呢。


但是,由于变量是由我们定义的,所以我们可以用人眼查找错误源。


在未来,当我们学会了更为复杂的命令,可以用代码对其他人提问,收集其他人的答案时,我们无法确定他们回复你的内容,是用什么数据类型写的。


所以,我们要学会善用Python的魔法,使用Python中一个已有的,既简单又实用的函数,来帮助我们查询不确定数据的类型。而这个函数,就是type()函数。


数据类型的查询——type()函数


那么,这个type()函数要怎么使用呢?答案就是:只需把查询的内容放在括号里就行。

11.png

只要你把内容写在括号里,type()函数就会立即将它的类型查询出来。下面,请你用刚才的代码来试一下。

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'
type(who)
type(action)
type(destination)
type(number)
type(code)

运行结果:


         

哎?怎么什么都没出现呢?刚刚不是说过,只要按照type(需要查询的数据)这个格式写对了,就能出现数据的类型吗?


其实,什么都没有就对了。对于Python来说,你只是下了一个命令——给我查询类型哟~然后Python就老老实实地查询了类型,再然后……就没有了。


在你的命令里,并没有告诉Python:“你查到以后,记得告诉我这个类型的结果啊~”所以,异常老实的Python就把查询到的数据类型……存起来了,没告诉你。


所以,我们要结合print()函数打印出结果。下面,请你再实操一下,补全代码,运用print()函数,将查询函数的结果打印出来。例如:print(type(hero))。


所以正确的代码是:

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'
print(type(who))
print(type(action))
print(type(destination))
print(type(number))
print(type(code))

运行结果:

<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'str'>

终端里出现的结果,是不是除了4个,还有1个?


str代表字符串,全称为string,整数的英文简称为int,全称为integer。


在type()函数的帮助下,我们知道也可以查找出字符串里面出现的『奸细』——整数。


可是为什么不同类型的数据不能拼接在一起呢?一句话:圈子不同不相融。


我打个比方,这就类似我饭阿森纳,你饭热刺。虽说咱俩都是足球粉丝,但喜欢的球队却是死对头,所以根本没办法交朋友,没法把咱俩放在一起。


但是,在某些时候,咱俩总得有低头不见抬头见,在一个球场看球的时候。那么这时候要怎么办呢?要如何把两个不同类型的数据拼在一起呢?


这就涉及到了我们这关最后一个知识点:数据转换。


数据转换


负责转换数据类型的函数一共有3种:str()、 int()和float()。


下面,我们先来学习一下,能帮我们解决刚才的代码Bug,就是str()函数,它拥有镜像世界的『影分身术』,可让其他类型的数据分身成str类型。


str()函数

12.png

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


参考代码:

who = '我的'
action = '是'
destination = '镜像世界'
number = 153
code = '通行密码'
print(who+destination+code+action+str(number))

运行结果:

我的镜像世界通行密码是153

是不是挺简单的?我们只需通过str(number)一个步骤,便可以将整数类型的【153】转化为字符串类型的【153】,成功完成数据拼接。


下面请你也来试一下:补全下方代码,成功打印出结果153=1x1x1+5x5x5+3x3x3是个水仙花数。【要点提示:str()函数,数据拼接,print()函数】


参考代码:

magic = '水仙花数'
action = '是'
unit = '个'
expression = '=1x1x1+5x5x5+3x3x3'
number = 153
print(str(number)+expression+action+unit+magic)

运行结果:

153=1x1x1+5x5x5+3x3x3是个水仙花数

153这个数字是不是很神奇呀,它是一个水仙花数等于每一个数字的立方和。


整数转换字符串类型的方法是不是很方便?那如果我告诉你,还有一种转换成字符串的方法,而且这种方法你已经学会了呢?


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

print('153'+expression+action+unit+magic)
• 1

下面,请你来实际运行一下,看能否出现两个一样的内容:

magic = '水仙花数'
action = '是'
unit = '个'
expression = '=1x1x1+5x5x5+3x3x3'
number = 153
print(str(number)+expression+action+unit+magic)
print('153'+expression+action+unit+magic)

运行结果:

153=1x1x1+5x5x5+3x3x3是个水仙花数
153=1x1x1+5x5x5+3x3x3是个水仙花数

你看,我们是不是用两种不同的写法:str()函数和引号,输出了同一种结果?


可是,为什么引号内我们使用的是数字,而不是变量名number呢?这是因为,当我们使用引号时,引号里的东西,都会被强制转换为字符串格式。


所以,如果我们把变量名number放进引号里后,被强制转换为字符串的,将是变量名number,而不是变量名代表的数字153。


可能有人会在心里吐槽:既然引号用着这么麻烦,那我直接用str()呗~你看这多省事。


其实,我并不是单单地在教你编程方法,而是想传达给你一种编程思维——条条大路通罗马。


代码的世界千变万化,同一个结果可能有千百万种答案,如果我们只心安理得地,局限在一种思维模式下。那这个思维定势一定会阻挡你的进步,阻止你成为真·大佬。


所以,我希望你能尽情创新,尝试不同的选择,就像老祖宗说的:胆大心细,绝对没错。


好了,题外话到此为止。现在我们来实操一下,锻炼一下编程思维。你知道吗?在镜像世界里你的战斗力会变强,每天可以完成在现实世界里需要666天的任务。请参考下方代码,思考如何用两种方法打印出结果:镜像世界的1天等于现实世界的666天。


参考代码:

place1 = '镜像世界的'
unit = '天'
place2 = '现实世界的'
action = '等于'
number1 = 1
number2 = 666
print(place1+str(number1)+unit+action+place2+str(number2)+unit)
print(place1+'1'+unit+action+place2+'666'+unit)

运行结果:

镜像世界的1天等于现实世界的666天
镜像世界的1天等于现实世界的666天

下面,我们来小结一下str()函数部分的知识点。

13.png

既然整数类型能转换为字符串,那字符串类型能转换为整数吗?


那必须的。


int()函数

14.png

将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。


下面我们来试验一下,请补全代码,计算出number1和number2这两个变量的和。【要点提示:1. int()函数转换数据类型;2. 运算符+计算;3. print()函数】

number1 = '6'
number2 = '1'

参考代码:

number1 = '6'
number2 = '1'
print(int(number1)+int(number2))

运行结果:

7

不过对于int()函数的使用,大家要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。


别看它虽然只有一句话,但它其实带有三层含义:首先,整数形式的字符串比如’6’和’1’,可以被int()函数强制转换。


其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换。


最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换。


比方说下列代码,如果点击运行,程序会报错【ValueError:invalid literal for int() with base 10: ‘3.8’】(值异常:浮点类型字符串无法使用int()强制转换)。

print(int('3.8'))
# 运行后显示结果:ValueError:invalid literal for int() with base 10: '3.8'

这是不是意味着,浮点数不能转换成整数类型了?


不,虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的。


下面,请你先观察下方代码框中的代码,然后运行。

print(int(3.8))

运行结果:

3

上方的代码串,就是一条将浮点数3.8强制转换的语句。但是,为什么输出的结果是3呢?


你看,int()函数的本质是将数据转换为整数。所以对于浮点数,int()函数会做取整处理。但是,同我们平时对小数四舍五入的处理方法不同,int()函数会直接抹零,直接输出整数部分。


最后,我们来小结一下int()函数的知识点。

15.png

可是,如果遇到这种情况:字符串就是小数形式,比如’3.8’这种。我不想让它变为整数3,想让它保持小数形式的3.8,那我要怎么做呢?


这就涉及到了我们这关最后一个知识点——float()函数。


float()函数

16.png

首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。


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


那么,经过之前str()和int()操练,float()函数是不是好懂了一些?


下面,我们来打段代码练练手。请补齐代码,将下列所有变量,转换为浮点类型,并打印出结果。【要点提示:print(float(数据))】


height = 188.0
weight = 180.0
age = '89'

参考代码:

height = 188.0
weight = 180.0
age = '89'
print(float(height))
print(float(weight))
print(float(age))

运行结果:

188.0
180.0
89.0

在上题中,height与weight变量已经是浮点类型,age是字符串类型(可以用type(变量)来查看数据类型),因此打印前对将age进行float(age)转化即可。到现在为止,你已经知道了转换数据类型的方法了。下面,我们通过一张图小结一下这三个函数。

17.png

怎么样?掌握了数据类型、数据拼接以及数据转换三个知识点的你,有没有成为大佬的成就感?


那么,我们再来看一下这关你都学到了什么吧!


总结

18.png

但以上这些,也仅仅是开始,以后你将学习更为复杂的代码及命令,掌握更多的与计算机沟通的技巧。


加油,你终将成为大佬!

相关文章
|
12天前
|
数据库 Python
Python 应用
Python 应用。
32 4
|
2天前
|
人工智能 安全 Java
Java和Python在企业中的应用情况
Java和Python在企业中的应用情况
20 7
|
12天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
13天前
|
机器学习/深度学习 JSON API
Python编程实战:构建一个简单的天气预报应用
Python编程实战:构建一个简单的天气预报应用
32 1
|
14天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
24 1
|
15天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
16天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
14天前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
24 0
|
3天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
9天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。