Python基础教程——数据类型及内置函数

本文梳理了Python的核心知识框架,包括数据类型、控制流、函数、模块和类。介绍了字符串的进阶知识,特别是input()函数用于获取用户输入,以及type()函数确定数据类型。还讨论了数据类型转换,如int(),float(),str(),并讲解了字符串格式化方法str.format(),以及转义字符 的使用。
摘要由CSDN通过智能技术生成

今天对 Python 的知识框架做梳理。

这会帮助你在脑内搭起知识的框架,将学到的零散知识组织起来。

此外,我们会学习字符串的进阶知识,及 Python 的内置函数。

其中字符串的格式化及后面会讲到的 input() 函数都是重点。

1.Python 核心知识框架

Python 的核心知识板块包括:数据类型,控制流,函数,模块,类。

每个板块都有不同的知识,它们具备不同的特性。

这几个板块具体指什么,包含什么知识呢?依次来看一下。

首先,数据类型:程序本质上是在操作和处理数据,所以 Python 中所有数据都属于某种数据类型。

像整数、浮点数、字符串就是 Python 中常见的数据类型。

在这一板块我们需要理解不同数据类型的概念、特性以及它们支持的操作。

然后是控制流

顾名思义,控制流的功能是控制程序的执行流程、代码的运行顺序,包含多种结构,如:顺序结构,分支结构,循环结构。

在程序中,我们称这些不同的程序结构为控制流,接下来的课程中,我也会为你逐一讲解这些程序结构。

再来看函数模块

有些代码不止可以解决某一特定问题,还可以解决一类相似的问题,这时候,需要把代码打包起来,以便后续解决同类问题时可以直接使用。

而 Python 中的函数模块就可以实现代码打包,让代码重复使用。

咱们一个个拆开来讲。

函数是打包好的一个功能,例如,print() 函数是一个可以直接使用的函数;

模块里通常包含一系列相关功能,导入模块就可以使用模块里的功能,例如,os 模块是一个常用于文件目录“打交道”的模块;

则是另一种打包代码的方式。

简单来说,数据类型讲各种数据,控制流讲程序执行的顺序。

函数模块的共同点是,将代码打包起来,以便重复使用。

接下来,咱们通过一段简单的代码,体会一下数据类型、控制流、函数在程序中的应用。

有些知识还不懂是正常的,因为你还没有学到,重要是体验。

fruits = ['西瓜', '桃子', '香蕉']
for i in fruits:

print('我喜欢吃:' + i)
print('我喜欢吃水果。')

代码解析

第 1 行代码用到的知识是数据类型和变量赋值,来看右侧代码👉:

['西瓜', '桃子', '香蕉']是一个列表,列表中的'西瓜''桃子''香蕉'都是字符串。

数据类型不止出现在这一行,比如,我喜欢吃:也是一个字符串。

这里第 2,3 行代码用到了控制流👉:

这个循环语句会重复执行三次。通过循环,可以将列表中的每个元素依次取出来。

每一个元素是一个字符串,可以和'我喜欢吃:这个字符串进行拼接。

第 3,4 行代码用到了函数👉:

第 3 行的 print() 函数从属于循环语句,每循环一次,都打印输出字符串拼接的结果;

第 4 行的 print() 函数在循环控制流外部,只执行一次,打印输出一个字符串。

这里没有展示模块和类的使用,你可以回忆一下 os 模块的使用,也可以期待一下类的使用。

运行下面的代码,观察结果。可以想想你之前写过的代码中,哪些部分用到了数据类型、控制流、函数、模块,以及它们如何合作得到最终结果。

如上面展示的,在 Python 程序中,数据类型通常是必要的,函数在各种简单的代码中也很常见。

控制流在需要重复执行或做分支选择时起到了重要作用。只有各个板块结合,才能完成其功能。

通常在解决实际问题时需要使用模块和类,这是不可或缺的。

Python 的核心知识框架包括数据类型、控制流、函数、模块和类五个板块。

只有当你能够在记忆中想起Python的框架,并且能够回忆起框架中每个板块的核心知识点、用法和示例,才能算是对Python学习有些基础。

2.input() 函数

今天我们要学习一个内置函数:input() 函数,它将用于获取你从终端中输入的内容。

有同学可能会问了,内置函数是什么呢?

很简单,内置函数通常指 Python 自带的函数,安装 Python 后可以直接使用,使用方式:函数名(参数)。例如,你的老朋友:print() 函数。

2.1 从终端获取输入

回到 input() 函数中来,input() 函数的语法是 input('提示性文字')

提示性文字可选,是字符串形式,用来提示输入什么。

程序运行到 input() 函数时,终端会出现光标提示用户输入内容,此时需要在终端输入内容,再按回车结束输入。

光这样说有点干巴巴的,咱们直接来看下面的代码。

先体验一下没有提示语的 input() 函数 :

再体验一下有提示语的 input() 函数:

这里我输入的是123。

输入到终端的内容,会被 input() 函数获取。为了后续能够使用输入的内容,通常需要将 input() 函数的结果赋值给一个变量,语法是:变量 = input('提示性文字')

举个例子,我最近给自己制定了一个读书计划,坚持每天打卡,我使用 input() 函数来获取从键盘输入的天数。

代码如下,阅读代码,不用修改,直接在本地运行:

# 在终端收集读书的天数
days = input('读书打卡,请输入今天是读书第几天:')
print(days)

2.2 input() 函数的结果:字符串

input() 函数规定了结果的数据类型:字符串。

也就是说,使用 input() 函数时,无论你在终端输入的内容是什么,被 input() 函数获取后,最终得到的结果都是字符串类型。

例如,在终端用键盘输入 1,input() 函数的结果是字符串 ‘1’。

3.type()

3.1 用 type() 获取数据类型

type() 可以用于获取数据的数据类型,适用于任何数据。

在语法上是type(数据),使用时,需要把数据作为 type() 的参数放到括号中,一次可以获取一个数据的类型。例如 type('Hello world!')type(12)

具体是什么效果呢?先看一段代码,本地运行,对比查看代码和运行结果。

# 字符串
print('---获取字符串的数据类型:---')
print(type('Hello world!'))
# 整数
print('---获取整数的数据类型:---')
print(type(2020))
# 浮点数
print('---获取浮点数的数据类型:---')
print(type(3.14))
# 列表
print('---获取列表的数据类型:---')
print(type([1, 2, 3, 4]))

从终端的显示可见,显示的结果分别是:<class 'str'><class 'int'><class 'float'><class 'list'>

'str' 代表字符串,是英文 string 的缩写。'int' 代表整数,'float' 代表浮点数,'list' 代表列表。

这样,通过打印 type() 返回的结果即可得到对应的数据类型结果。

3.2 类型为何重要?

因为不同数据类型会支持不同的操作。

每个数据从生成开始,Python 就给它贴了个“标签”,这就是数据的类型。

数据类型最重要的意义其实是规定了数据支持的运算、方法以及其他操作。

使用 type() 获取数据的数据类型时,其实是给我们人类看 Python 给这个数据贴了哪个标签:整数 'int',浮点数 'float',字符串 'str'等等。

以字符串为例,字符串本质是一种文本数据。

Python 给数据贴上 ‘str’ 标签,就意味着它只能是一个文本,而不会同时是一个数字。

所以即使 ‘1’,‘2’,‘3’ 这样看起来是数字的数据,也不能进行数值运算。

举个例子,我最近在读一本书,共 289 页,每天读 9 页。

我想写个简单的程序,输入读书天数,就能计算出还剩多少页没读。

如果直接做运算,写出的代码直接运行会报错。

# 在终端收集读书的天数
days = input('读书的天数:')
# 计算剩余未读完的页数
pages = 289 - 9*days
# 把剩余的页数打印出来
print(pages)

因为数字(整数、浮点数)才能做数值运算,而字符串是不可以的。

为了能计算,读书天数 days 的数据类型应该是整数,那这怎么办呢?

好在满足实际需求这方面,Python 总不会让人失望,Python 提供了一种功能:数据类型转换

4.数据类型转换

像前面的例子一样,由于不同的数据类型支持不同的操作,有时候,我们输入数据的数据类型并不能直接使用,那么就需要先进行类型转换。

今天我们要学习的是将数据转换为整数、浮点数、字符串的三种类型转换,分别是:int()、float() 和 str()。

int 表示整数,float 表示浮点数,str 表示字符串。int(),float(),str() 可以将数据转换为对应的数据类型。

这个过程就像手动复制一个数据,给它贴上新标签。

4.1 int()

int() 可以将浮点数,或者整数样子的字符串转换为整数。如 int(3.14)的结果是3int('2020')2020

可以看到,用 int() 转换浮点数时,它会直接舍弃小数点之后的内容。

眼见为实,咱们也运行一段代码看看~

print('---浮点数3.14转整数:---')
# 浮点数转整数
num_1 = int(3.14)

print(num_1)

print(type(num_1))
print("---字符串'2020'转整数:---")
# 字符串转整数
num_2 = int('2020')

print(num_2)
print(type(num_2))

这里要记住:浮点数样子的字符串(例如 ‘3.14’)不可以被 int()直接转化为整数。

4.2 float()

float() 可以将整数,或者数字(整数、浮点数)样子的字符串转化为浮点数。

例如 float(3)可以得到3.0float('3.14')可以得到3.14

print('---整数21转浮点数:---')
# 整数转浮点数
num_1 = float(21)
print(num_1)
print(type(num_1))
print("---字符串'3.14'转浮点数:---")
# 字符串转浮点数
num_2 =float('3.14')
print(num_2)
print(type(num_2))
print("---字符串'5'转浮点数:---")
# 字符串转浮点数
num_3 =float('5')
print(num_3)
print(type(num_3)) 

4.3 str()

str() 就厉害了,几乎能将其他任何类型的数据转化为字符串。

str(3)可以得到'3'str(3.14)可以得到'3.14'str([1,2,3,4])可以得到'[1,2,3,4]'

print('---浮点数3.14转字符串:---')
# 浮点数转字符串
string_1 = str(3.14)
print(string_1)
print(type(string_1))
print('---列表[1, 2, 3, 4]转字符串:---')
# 列表转字符串
string_2 = str([1, 2, 3, 4])
print(string_2)
print(type(string_2))

5.字符串的进阶操作

程序在处理数据后,通常需要输出结果。例如,用 print() 函数在终端输出内容。

使用 print() 时,如果同时有文本信息和变量需要打印,那就可以用字符串拼接的方法来输出。

回到读书计划的例子中来。

如果通过计算后,想要在终端显示【这本书剩余未读页数:xx 页】,可以写成下面的代码。

# 在终端收集读书的天数
days = int(input('读书打卡,读书的天数:'))
# 计算剩余未读完的页数
pages = 289 - 9*days
# 把剩余的页数打印出来
print('这本书剩余未读页数:' + str(pages) + ' 页')

就像 input() 得到的字符串不能做数值计算,整数也不能和字符串拼接,因此,我用了 str() 帮忙将 pages 转换为字符串。

转换成字符串的 pages 才可以和前后的字符串拼接起来打印。

现在我们将学习一种更符合人类读写习惯的操作,它可以实现在字符串中嵌套其他内容而无需进行数据类型转换。我们称之为字符串格式化的是一种字符串操作。

5.1 字符串格式化:format()

对字符串进行格式化是在字符串中嵌入其他内容的一种操作,并需要按照指定的语法格式来书写。

学习了这种方法后,你会发现使用字符串格式化比先进行类型转换再拼接更易读。

字符串的格式化操作有几种不同方法,今天我们就学习其中一种:format()。

format() 的使用需要紧跟着字符串,写法是 str.format()。这种写法表示 format() 是字符串的一个功能(str 在这里指一个具体的字符串)。

我们通过一段代码来更直观地看看它是如何使用的:

# 第一种用法
print('今天是星期{},气温 {} 度。'.format('五', 9))
# 第二种用法
print('{name}今年 {age} 岁。'.format(name='知枫', age=21))

上述两种都是用 format() 格式化字符串的语法。

用 format() 格式化的字符串包含着以花括号 {} 括起来的“替换字段”,如上述代码中的{}{name}{age}都是替换字段。

程序执行时,替换字段会被 format() 参数的值替换。

第一种用法:花括号{}中没有内容,如果字符串中有多对花括号,format() 的参数会按照 {} 的位置顺序分别替换。

第二种用法:花括号{}中填入字符,如{name},name 就像替换字段的标识,format() 按照标识,用值替换对应的替换字段。

需要注意的是,替换字段的“标识”应该是有意义的内容,这样做的好处是即使不看替换后的内容,也能大致理解字符串表达的意思。

注意,这里format()内参数的值可以是任意类型,这和字符串拼接不同。

例如,上面例子中使用9age=21作为参数,此时参数的值是整数,在格式化时,并不用事先转换为字符串。

然后我们来看几个不同的字符串格式化案例

print('知枫本月话费余额{}元'.format(20))
print('{owner}的猫名字叫{pet}'.format(owner='月娜', pet='潘潘'))
print('体温计显示的结果是{}度'.format(36.5))

5.2 转义字符:\n

除了要注意代码本身的可读性之外,我们也别忘了输出的结果同样需要有好的阅读体验。

在 Python 中,字符串还能用“转义字符”实现换行:单行代码,多行输出。

转义字符是什么呢?

转义字符是一种有特殊功能的字符组合,以反斜杠 \ 开头,后面跟一个或几个字符。

转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。

例如 \n,n 在转义之前是字符 n,转义之后 \n 变成了 newline,表示换行。

Python 中,在字符串中加入转义字符可以实现特殊控制功能(如换行符 \n、制表符 \t 等转义字符能产生键盘上回车键、tab 键的效果)。

另一方面,转义字符还可以将一些功能字符转义为普通文本,如(单引号 \',加上反斜杠后,则不会被识别为字符串的边界)。

常用的转义字符有:\n 换行,\r 回车,\\ 反斜杠符号,\' 单引号,\" 双引号,\t 横向制表符 tab。

对于这些转义字符,不用背诵,只要有个印象就可以~

当然了,讲了这么多,我们还是需要看一下在程序中的实际效果。

print('小白兔,\n白又白。\n两只耳朵竖\t起来。')
print('爱吃萝卜,\n爱吃菜。')
print('\'知枫\'觉得上面的儿歌很\"有趣\"。')

ok,看完效果后,我们仔细认识一下\n

换行符\n是最常用的转义字符之一。有了换行符,输入和输出时,终端显示就可以更清晰友好。

\n在 Python 中是一个字符串,如果单独写就是 ‘\n’。这里的 ‘\’ 是一个字符,‘n’ 也是一个字符,但是 ‘\n’ 是转义字符,打印该字符不显示 ‘\n’,而是执行换行的功能。我们通常会将**\n**写在一个需要换行的字符串中。

当打印字符串遇到\n,会重起一行再继续打印\n之后的内容。

例如上面代码的例子,print('小白兔,\n白又白。') 就能打印出’小白兔,(换行)白又白。'的效果。

注意,\n的斜杠是反斜杠,反斜杠是向左倾斜的,和除法的正斜杠(向右倾斜)要区分开。

6. 知识总结

本节我们学到的知识和技能有:

1)字符串的格式化操作 str.format(),转义字符(换行符 \n)的用法;

2)用 int()、float()、str() 进行类型转换;

3)用 type() 获取数据的类型;

4)使用 input() 函数从终端获取键盘输入的内容,得到字符串的结果。

注意啦,本关卡的重点是 str.format() 和 input() 函数,下面我们再巩固一下这两个知识点。

str.format()

format() 是一种字符串格式化操作,它有两种用法。

第一种用法:‘今天是星期{},气温 {} 度。’.format(‘五’, 9)

第二种用法:‘{name}今年{age}岁’.format(name=‘知枫’, age=21)

input()

语法:变量名 = input(‘提示性文字’)

注意:无论输入什么,input() 得到的结果都是字符串。

使用 input() 时通常将结果赋值给一个变量,提示文字可省略,但有提示会更友好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值