【从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.hqwc.cn/news/469463.html

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

相关文章

JS如何判断普通函数与异步(async)函数

这里可以先打印一下普通函数和异步&#xff08;async&#xff09;函数的结构&#xff0c;如下图 可以看出两者原型链&#xff0c;普通函数的原型链指向的是一个函数&#xff0c;异步&#xff08;async&#xff09;函数原型链指向的是一个AsyncFunction&#xff0c;这时就会想到…

顶级思维方式——认知篇五(思想的觉醒)

目录 1、 女性的地位觉醒 2、电视剧《天道》之高人思维&#xff1a;丁元英为什么讲“人间黑白颠倒”&#xff1f; 3、 创业公司, 更应该大胆的创新. 4、 做到一定职务的时候&#xff0c; 你一定想到在你这个地位上你要做什么 1、 女性的地位觉醒 过去引以为鉴的例子&…

Ubuntu如何设置成中文

1、右上角点击&#xff08;音量图标和电池图标位置&#xff09;&#xff0c;选择“Settings”&#xff08;设置&#xff09;。 2、左侧选择“Region & Language”&#xff08;区域与语言&#xff09;&#xff0c;然后选择“Manage Installed Languages”&#xff08;管理已…

JavaWeb学习|Filter与ThreadLocal

学习材料声明 所有知识点都来自互联网&#xff0c;进行总结和梳理&#xff0c;侵权必删。 引用来源&#xff1a;尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版 Filter 1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是&#xff1a;Servlet 程序、Liste…

专业140+总分420+东北大学841通信专业基础考研经验东大电子信息与通信工程,真题,大纲,参考书。

今年考研顺利上岸&#xff0c;被东北大学通信工程录取&#xff0c;其中专业课841通信专业基础140&#xff0c;数二140&#xff0c;总分420&#xff0c;整体每门课都还是比较均衡&#xff0c;刚开始考研前也和大家一样&#xff0c;焦虑&#xff0c;紧张&#xff0c;面对考研怕失…

人工智能时代

一、人工智能发展历史:从概念到现实 人工智能(Artificial Intelligence,简称AI)是计算机科学领域中一门旨在构建能够执行人类智能任务的系统的分支。其发展历程充满曲折,从概念的提出到如今的广泛应用,是技术、理论和实践相互交织的产物。 1. 起源(20世纪中期) 人工智…

【C++函数探幽】内联函数inline

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1. 前言2.概念3.特性…

计算机网络概述习题拾遗

学习目标&#xff1a; 自下而上第一个提供端到端服务的层次 路由器、交换机、集线器实现的功能层 TCP/IP体系结构的网络接口层对应OSI体系结构的哪两个层次 分组数量对总时延的影响 如果这篇文章对您有帮助&#xff0c;麻烦点赞关注支持一下动力猿吧&#xff01; 学习内容…

力扣hot3--并查集+哈希

第一想法是排个序然后遍历一遍&#xff0c;but时间复杂度就超啦 并查集居然与哈希结合了&#xff08;&#xff09; 已经好久没用过并查集了&#xff0c;&#xff0c;&#xff0c;我们用哈希表f_node中来记录原结点的父节点&#xff0c;其中key是原结点&#xff0c;value是父节点…

CFS三层靶机

参考博客&#xff1a; CFS三层内网靶场渗透记录【详细指南】 - FreeBuf网络安全行业门户 CFS三层靶机搭建及其内网渗透【附靶场环境】 | TeamsSix CFS三层网络环境靶场实战 - PANDA墨森 - 博客园 (cnblogs.com) CFS三层靶机实战--内网横向渗透 - 知乎 (zhihu.com) CFS靶机…

【STM32 CubeMX】STM32中断体系结构

文章目录 前言一、中断体系的比喻二、中断的内部结构2.1 EXTI触发方式 2.2 NVIC2.3 cpu与中断2.4 外部中断控制器框图上升沿触发选择寄存器屏蔽/使能寄存器等待处理寄存器 2.5 中断优先级 总结 前言 一、中断体系的比喻 STM32中断体系如下图所示&#xff1a; 一座大型建筑物…

【计算机网络】链路层

透明传输&#xff1a; 指的是链路层首部尾部定位时为防止数据中有相同数据导致错误判定&#xff0c;所以使用转义字符&#xff0c;对于用户察觉不到转义字符的存在。 信道分类&#xff1a; 1.广播信道 广播信道为避免冲突&#xff0c;使用两种方式进行协调&#xff0c;一是信道…