【从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来编写一些基础的程序。

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值