【从0到1学Python】第四讲:Python中的各种“量”(三)

不要着急!我们在下一讲就会开始编写如假包换的程序了。

        这一讲我们了解一下六种常见类型的量的常用方法,以及不同类型之间的关系。

        所谓“方法(methods)”,我的理解是对于某一个类型的量的某种操作或判断。比如说,将一个字符串中的全部大写字母转换为小写字母,等等。也许你可以在后续编程中通过循环之类的实现——但是“方法”已经为我们提供了现成的工具。

【说明1】鸽了各位这么久,实在不好意思。一方面,年关将近;另一方面,学校内部也有一些事项需要处理。不过,这一讲总算是能与大家见面了。在此,笔者祝大家新年快乐,龙年吉祥!

【说明2】因为本讲中标题与层次较多,目录较长,因此就不放置了。全文约6000字,主要内容共分为两节。

1. 不同类型的量的常用方法

        我们对一个变量(或常量)使用方法,需要通过在变量名称(或常量)后添加点“.”与方法名称来实现。下文提到的方法,均将做相应的演示。

        对于方法,你可以在Shell界面中输入help(),再输入相应的类型名称(例如str),双击查看文本(如果有一个“Sqeezed text”按钮的话),在文本中找到“Methods defined here”以查看相应类型的方法。

输入help(),再输入str。双击那个弹出的按钮。

找到“Methods defined here”。接下来的部分便是当前类型对应的方法。

        对于演示的样例,你可以在Shell中进行操作,自行尝试不同的情况。

1.0 在开始前的说明

        返回与返回值

        在说明一些方法的时候可能会提到这个词。“返回”的意思是,在程序执行到这一条语句之后,会将这一条语句替换为对应的返回值。因此,你需要通过赋值来存放返回的结果。

        这个过程就好比是榨汁机。橙子通过榨汁机,返回值是橙汁。你需要拿一个杯子将橙汁装起来,再进行后续的操作。比如说,有这么一段描述:

某类型有【方法名】方法,作用是……,返回【返回值】。

        在实际执行语句的时候,就会将【变量名】.【方法名】替换为【返回值】。为了不让某一条语句变为某个值,我们需要将其转化为赋值语句。举个更具体的例子:

整数类型有double()方法(我瞎编的),其作用是将这个数乘以二。返回运算的结果。

        那么,我们写程序的时候就要这么写:

a = 3
double_a = a.double()

        因为a.double()会最终被6替换,语句变为这个样子:

a = 3
double_a = 6

         如果不赋值,语句会变为这个样子:

a = 3
6

         如此,就会在“6”的那一行报错。

        特别说明:在下文的演示中,由于Shell界面会直接显示返回值(计算结果),因此就不再进行赋值操作。在后续的编程中,请务必记得加上赋值操作(有特殊说明的除外)。

1.1 整数型、浮点型

        初学阶段没有常用的方法。这两种类型可以跳过。

1.2 字符型

        count()

        用途:查看某个字符(串)在目标字符串中出现的次数。返回一个整数型的量。

        样例:

>>> s = "I like apples. The apples are really tasty."
>>> s.count("apples")
2
>>> s.count("e")
6

        find()

        用途:在目标字符串中查找某个字串(或字符)。返回其第一次出现的起始位置(索引)。如果没找到,则返回 -1。

        样例:

>>> s = "I like apples. The apples are really tasty."
>>> s.find("apple")
7
>>> s.find("i")
3
>>> s.find("z")
-1

        join()

        用途:在某个由字符型组成的列表中的各元素之间插入目标字符(串)。返回生成的新字符串。

        样例:

>>> l = ["3", "5", "10", "100"]
>>> s = " < "
>>> s.join(l)
'3 < 5 < 10 < 100'

        或者直接一点:

>>> " < ".join(["3", "5", "10", "100"])
'3 < 5 < 10 < 100'

        lower()

        用途:将字符串中的字母全部转换成为小写。返回生成的新字符串。

        样例:

>>> s = "BREAKING News Top 10!"
>>> s.lower()
'breaking news top 10!'

       upper()

        用途:将字符串中的字母全部转换成为大写。返回生成的新字符串。

        样例:

>>> s = "BREAKING News Top 10!"
>>> s.upper()
'BREAKING NEWS TOP 10!'

        capitalize()

         用途:将字符串中的字母转换为首字母(有且仅有第一个字母)大写。返回生成的新字符串。

        样例:

>>> s = "I Like Apples. the apples are really tasty."
>>> s.capitalize()
'I like apples. the apples are really tasty.'

        swapcase()

        用途:将字符串中的字母大小写交换。 返回生成的新字符串。

        样例:

>>> s = "i Like AppLes. the aPPles aRe reAlly tasty."
>>> s.swapcase()
'I lIKE aPPlES. THE AppLES ArE REaLLY TASTY.'

        replace()

        用途:将目标字符串中的某些字符(或字符串)转换为新的字符(或字符串)。 返回生成的新字符串。

        样例:

>>> s = "I like apples. The apples are really tasty."
>>> s.replace("apples", "bananas")
'I like bananas. The bananas are really tasty.'

        split()

        用途:按照给定的分隔符进行判定,将目标字符串分割为若干小字符串。返回包含结果的列表。默认的分隔符是空格“ ”。

        样例:

>>> s = "Apple/Book/Cat/Dog/Egg"
>>> s.split("/")
['Apple', 'Book', 'Cat', 'Dog', 'Egg']

        在不加分隔符参数的情况下:

>>> s = "Apple Book Cat Dog/Egg"
>>> s.split()
['Apple', 'Book', 'Cat', 'Dog/Egg']

        strip()

        用途:删去字符串前后的空白字符。 返回生成的新字符串。

        样例:

>>> s = "   Hello   world!!!   "
>>> s.strip()
'Hello   world!!!'

1.3 布尔型

        初学阶段没有常用的方法。可以跳过。

1.4 列表

        append()

        用途:在列表末尾追加一个元素。没有返回值。

        样例:

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

        count()

        用途:和字符型的count()方法类似,查看某个值在目标列表中出现的次数。返回一个整数型的量。

        样例:

>>> l = [3, 1, 4, 1, 5, 9, 2, 6, 5]
>>> l.count(1)
2
>>> l.count(7)
0

        index()

        用途:查找某个值在列表中第一次出现的位置。如果找到,返回一个整数型的变量(下标);否则,会产生ValueError错误。

        样例:

>>> l = [1, 2, 3, 4, 3, 2, 1]
>>> l.index(3)
2
       

        insert()

        用途:向给定列表中的目标位置(下标)插入一个元素。使用insert()方法时需要提供两个参数:目标位置的下标以及插入的元素。没有返回值。

        样例:

>>> l = [1, 2, 3, 5]
>>> l.insert(3, 4)
>>> l
[1, 2, 3, 4, 5]

        以上样例中,我们向l中下标为3的位置插入了元素4。

        

        pop()

        用途:移除给定列表中目标位置(下标)的元素。如果成功移除,则返回该元素的值;否则,若列表为空(长度为0)或给定下标过大,则会产生IndexError的错误。

        样例:

>>> l = [1, 2, 3, 3, 4]
>>> l.pop(3)
3
>>> l
[1, 2, 3, 4]

        以上样例中,pop()方法成功移除了列表l中下标为3的元素:3,并返回了3。移除后,我们看到,列表l变为了[1, 2, 3, 4]。

        reverse()

        用途:反转列表。记得之前提到过的“列表切片”吗?我们也可以通过[::-1]的方式反转一个列表。没有返回值。

        样例:

>>> l = [1, 3, 2, 4]
>>> l.reverse()
>>> l
[4, 2, 3, 1]

        sort()

        用途:将列表中的元素排序,默认升序。没有返回值。

        样例:

>>> l = [1, 3, 2, 4]
>>> l.sort()
>>> l
[1, 2, 3, 4]

        之所以说是“默认”,是指我们可以通过参数使之变成降序排序,即参数reverse。参数reverse默认为False,当它为True的时候,就可以实现降序排序。使用时,我们需要手动指定reverse参数。

>>> l = [1, 3, 2, 4]
>>> l.sort(reverse = True)
>>> l
[4, 3, 2, 1]

1.5 字典

        get()

        用途:获取字典中某个键对应的值。若找到,则返回对应的值;否则,返回事先给定的default值。相比于直接利用中括号获取,使用get()可以很好地防止程序报错。

        样例:

>>> d = {"A": 1, "B": 2, "C": 3}
>>> d.get("A", -1)
1
>>> d.get("D", -1)
-1

        其中,给定的第一个参数是键,第二个参数是default值(即-1)。

        pop()

        用途:移除给定字典中目标键对应的键值对。如果成功移除,则返回对应的值;否则,会返回事先给定的default值。当default值没有给定且目标键在给定字典中找不到时,会抛出KeyError错误。因此,使用pop()时请务必设定好default值。

        样例:

>>> d = {"A": 1, "B": 2, "C": 3}
>>> d.pop("A",  -1)
1
>>> d.pop("D",  -1)
-1
>>> d
{'B': 2, 'C': 3}

        其中,给定的第一个参数是键,第二个参数是default值(即-1)。

        以上样例中,我们通过pop()移除了键为"A"的键值对。由于d中不存在键"D",且给定了default值(即-1),因此第二条pop()运行后返回了default值-1。

        update()

        用途:将新字典更新到旧字典中。没有返回值。

        样例:

>>> d1 = {"A": 1, "B": 2, "C": 3}
>>> d2 = {"C": 4, "D": 5, "E": 6}
>>> d1.update(d2)
>>> d1
{'A': 1, 'B': 2, 'C': 4, 'D': 5, 'E': 6}

        以上样例中,我们将d2的内容更新到了d1中。我们看到,对于已经存在的键(如"C"),原字典中的值将会更新("C"对应的值从3变为4);对于未存在的键(如"D""E"),原字典则会添加这些键值对。

        items() / keys() / values()

        用途:获取目标字典的键值对/键/值内容。返回值为一个可遍历的dict_items/dict_keys/dict_values类型的值(不需要在意这些值的类型)。

        样例:我们将在后续讲解循环的时候解释何为遍历及如何遍历。大家可以留个心眼,在后续必要的时候配合循环使用这三种方法。

2. 不同类型之间的常见转换关系

2.1 整数型

        2.1.1 整数型→浮点型

        float()

        我们可以使用float()函数将整数型转换为浮点型。例如:

>>> i = 3
>>> f = float(i)
>>> f
3.0

        这个样例中,i为整数型变量;通过使用float()函数,将i的值(即3)转换为浮点型的值(即3.0)。我们将函数的返回值赋值给了变量f,我们能通过最后一行看到f的值为3.0。

        2.1.2 整数型→字符型

        str()

        如果希望获得数字对应的字符串,我们可以使用str()函数。例如:

>>> long = 123454321
>>> long_s = str(long)
>>> long_s
'123454321'

        这个样例中,long为整数型变量;通过使用str()函数,将long的值(即123454321)原封不动地转换为对应的字符串(即"123454321")。非常直观。

        chr()

        另外,记得那张ASCII码表吗?我们可以通过chr()函数,将ASCII码值转换为对应的字符。例如:

>>> a = 99
>>> chr(a)
'c'

        在这个样例中,a为整数型变量;我们查表可知,ASCII码表中,99对应字符"c"。因此,chr(a)的结果为99对应的字符"c"。

        bin() / oct() / hex()【不常用】

        使用这三个函数,将整数分别用二进制 / 八进制 / 十六进制表示。函数返回的结果分别用"0b"(二进制)、"0o"(八进制)、"0h"(十六进制)开头。例如:

>>> bin(10)
'0b1010'
>>> oct(10)
'0o12'
>>> hex(10)
'0xa'

        2.1.3 整数型→布尔型

        bool()

        使用bool()函数,将整数型转换为布尔型。规则是:非零为True,零为False。例如:

>>> bool(0)
False
>>> bool(-1)
True
>>> bool(2)
True

2.2 浮点型

        2.2.1 浮点型→整数型

        int()

        使用int()函数,对浮点数进行向零方向取整。例如:

>>> int(5.2)
5
>>> int(0.1)
0
>>> int(-0.4)
0
>>> int(-2.5)
-2

        2.2.2 浮点型→字符型

        str()

        与整数型同理。例如:

>>> pi = 3.1415
>>> pi_s = str(pi)
>>> pi_s
'3.1415'

        2.2.3 浮点型→布尔型

        bool()

        与整数型同理。规则是:非零为True,零为False。

2.3 字符型

        2.3.1 字符型→整数型

        int()

        如果字符串的内容为整数,则可以通过int()函数直接将其转换为整数。例如:

>>> int("123")
123
>>> int("-32")
-32
        ord()

        如果该字符型的量为ASCII码表中的单个字符,则可以通过ord()函数获取其ASCII码值(整数)。例如:

>>> ord("A")
65
>>> ord("a")
97
        len()

         通过使用len()函数,获取字符串的长度。例如:

>>> len("apple")
5
>>> len("")
0

        2.3.2 字符型→浮点型

        float()

        与2.3.1中的int()同理,如果字符串的内容为浮点数,则可以通过float()函数将其转换为对应的浮点数值。例如:

>>> float("123.4")
123.4
>>> float("-15.0")
-15.0

        2.3.3 字符型→布尔型

        bool()【不常用】

        非空字符串对应True,空字符串对应False。

        2.3.4 字符型→列表

        list()

        利用list()函数,可以将一个字符串中的每个字符拆分出来,作为列表中的元素,并返回该列表。例如:

>>> list("apple")
['a', 'p', 'p', 'l', 'e']
>>> list("123")
['1', '2', '3']

 

2.4 布尔型

        2.3.1 布尔型→整数型

        int()

        True对应1,False对应0。

        2.3.2 布尔型→浮点型

        float()【不常用】

        True对应1.0,False对应0.0。

        2.3.3 布尔型→字符型

        str()【不常用】

        True对应"True",False对应"False"。

2.5 列表

        2.5.1 列表→整数型

        len()

        通过len()函数,获取列表的长度。例如:

>>> len([1, 2, 3])
3
>>> len([])
0

2.6 字典

        2.6.1 字典→整数型

        len()

        通过len()函数,获取字典的长度(键值对的个数)。例如:

>>> len({"a": 1, "b": 2})
2

2.7 一张表小结

        下表小结了第二节中提到的类型之间常见的转换关系。当然,除了表中提到的,我们也可以用第一节中提到的各种方法来实现类型之间的转换。

类型之间常见的转换关系
从(下)转换为(右)intfloatstrboollistdict
int-float()

str()

chr()

bin()/oct()/hex()

bool()--
floatint()-str()bool()--
str

int()

ord()

len()

float()-bool()list()-
boolint()float()str()---
listlen()-----
dictlen()-----

3. 总结

        在本讲中,我们大致了解了类型常见的方法,以及类型之间的变换与沟通。你可以想象一下,不同类型之间有许多桥梁,我们可以通过这些桥梁获取我们需要的类型的量。

        关于“量”的话题,在本讲就告一段落了。各位可以回顾一下自己学到了多少;如果一时半会儿记不住也没关系,我们在后续的实战中会经常使用这些量以及“方法”“桥梁”。通过不断使用,相信各位一定可以熟练、恰当使用以上的知识。

        在下一讲中,我们将使用Python来编写一些基础的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB APIs(1)

变量声明const&#xff08;修饰常量&#xff09; const优先&#xff0c;如react&#xff0c;基本const&#xff0c; 对于引用数据类型&#xff0c;可用const声明&#xff0c;因为储存的是地址 何为APIs 可以使用js操作HTML和浏览器 分类&#xff1a;DOM&#xff08;文档对象…

Java奇缘:林浩然与杨凌芸的数学冒险记

Java奇缘&#xff1a;林浩然与杨凌芸的数学冒险记 Java Adventure: The Mathematical Odyssey of Lin Haoran and Yang Lingyun 在Java编程世界的某一个角落&#xff0c;住着两位才华横溢的程序员——林浩然和杨凌芸。林浩然&#xff0c;人称“算法大侠”&#xff0c;对Java Ma…

【Vue】工程化开发脚手架Vue CLI

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue⛺️稳重求进&#xff0c;晒太阳 工程化开发&脚手架Vue CLI 基本介绍 Vue Cli是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了we…

express 定时删除 oss 垃圾图片

一&#xff1a; 删除垃圾图片 思路&#xff1a; 获取 oss 中存储的所有图片文件&#xff1b;获取数据库中存储的图片文件数据&#xff1b;对比差异&#xff0c;不在数据库中的 oss 图片文件即为要删除的垃圾图片。 实现&#xff1a; 1、获取所有 oss 文件 import OSS from…

Pr教程1-8节笔记

第一课 认识PR以及PR的学习方法 学习任务&#xff1a; 1、熟练掌握PR软件&#xff0c;同时掌握剪辑技术以及常用于制作特效的效果器。 2、认识PR软件的名称、主要功能以及用途作用。 3、明白学习PR我们能做些什么以及PR的学习方法。 知识内容&#xff1a; 1、PR是专门用于视…

微服务—ES数据同步

目录 数据同步 问题分析 方案1. 同步调用 方案2. 异步通知 方案3. 监听binlog​编辑 各方案对比 案例——利用MQ实现数据同步 步骤1. 导入hotel-admin项目 步骤2. 声明交换机、队列 步骤3. 发送MQ消息 步骤4. 接收MQ消息 步骤5. 测试同步功能 数据同步 elasticsea…

C#,计算几何,贝塞耳插值(Bessel‘s interpolation)的算法与源代码

Friedrich Wilhelm Bessel 1 贝塞耳插值&#xff08;Bessels interpolation&#xff09; 首先要区别于另外一个读音接近的插值算法&#xff1a;贝塞尔插值&#xff08;Bzier&#xff09;。 &#xff08;1&#xff09;读音接近&#xff0c;但不是一个人&#xff1b; &#x…

【zabbix】(三)-邮件告警配置

企业微信、钉钉和邮件告警配置的目的是为了确保监控系统检测到的问题能够及时传达给相关人员&#xff0c;并通过灵活的通知方式提高团队的响应速度和协作效率。 本文介绍的是QQ邮件告警 一 开启发件服务器SMTP功能 本文使用的是QQ邮箱&#xff0c;其他邮箱操作类似&#xff…

【Pygame手册01/20】最简应用:窗口

目录 一、说明 二、pygame是什么&#xff1f; 2.1 为游戏开发设计 2.2 版本发展史 2.3 特点 三、pygame安装要点 四、入门知识 4.1 初始使用 4.2 要更改 pygame 窗口的外观 4.3 完整窗口程序 4.4 窗口对象接口示例 五、隐形窗口和显性窗口 六、结论 一、说明 为什…

MySQL-----函数篇

目录 ▶ 字符串函数 ▶ 数值函数 ▶ 日期函数 ▶ 流程函数 ▶ 简介 函数是指一段可以直接被另一段程序调用的程序或代码。 ▶ 字符串函数 函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码&#xff1a; S…

电路设计(18)——9路抢答器的设计与制作

1.设计要求 设计、制作一台9路抢答器&#xff0c;抢答器应符合如下工作过程&#xff1a; 每次抢答前&#xff0c;主持人首先按下复位键&#xff0c;将抢答器上“抢答号”数显复位&#xff0c;显示为“0”。接着&#xff0c;主持人念答题内容&#xff0c;念毕即叫“抢答…

炫酷3D按钮

一.预览 该样式有一种3D变换的高级感&#xff0c;大家可以合理利用这些样式到自己的按钮上 二.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice…

Java网络编程 双向通信

目录 网络编程实例创建客户端创建服务端测试 网络编程 Java的网络编程是Java编程语言中用于实现网络通信的一组API和工具。通过Java的网络编程&#xff0c;开发人员可以在Java应用程序中实现客户端和服务器之间的通信&#xff0c;从而构建各种网络应用。 以下是Java网络编程的…

步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储

博客原文 文章目录 前言集群环境nfs 环境搭建pod 挂载 nfs架构图 pvc 方式挂载 nfs架构图 storageclass 方式动态申请 pv架构图 参考 前言 持久化卷&#xff08;Persistent Volume, PV&#xff09;允许用户将外部存储映射到集群&#xff0c;而持久化卷申请&#xff08;Persist…

黄金交易策略(Nerve Nnife.mql4):利用锁定单消除保留单

完整EA&#xff1a; Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 趋势突然转变有大约30%的概率会产生一张锁定单&#xff0c;反复转变之后难免就会形成几个保留单了&#xff0c;可以选择一张与保留单同向同大小&#xff08;接近也行&#xff09;的单&#xff0c;去消除这…

半理想架构的Doherty功率放大器理论与仿真-基于GAN器件CGH40010F

半理想架构的Doherty功率放大器理论与仿真-基于GAN器件CGH40010F 理想架构的Doherty功率放大器理论与仿真中已经介绍了如何在ADS中使用理想电流源来对DPA的架构进行仿真。但是理想的电流源太理想了&#xff0c;电压、电流的许多行为都是需要自己使用数学公式去严格定义&#x…

【Python】Python代码的单元测试

Python代码的单元测试 单元测试的概念 定义&#xff1a;是指对软件中的最小可测试单元进行检查和验证。 作用&#xff1a;可以确保程序模块是否否和我们规范的输出&#xff0c;保证该模块经过修改后仍然是满足我们的需求。 单元测试的策略 如果要创建单元测试&#xff0c;…

比特币再次上演“初五破五”精彩戏法!

号外&#xff1a;2.13教链内参《随着BTC一度突破5万刀&#xff0c;超过9成持有者已盈利》 比特币无惧美通胀数据阻击&#xff0c;在短暂回落之后坚决反攻&#xff0c;在中国农历大年初五&#xff0c;2月14日情人节&#xff0c;大涨6%&#xff0c;从48k绝地反击&#xff0c;再次…

游戏服务器租用多少钱一年?

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;华为云26元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;游戏专业服务器公网带宽10M、12M、15M…

吃瓜 - 春山学

2024年春晚看似一个贵州献上的歌舞节目《上春山》&#xff08;白敬亭、魏大勋、魏晨合唱&#xff09;引发网络破案&#xff1a;白敬亭有没有抢C位和故意换衣服&#xff1f;网上的“白敬亭春晚走位风波”不断升级&#xff0c;喂到嘴里的瓜不吃也不行啊。 三人都是明侦的元老嘉…