2.2.3 数据类型转换
上一节介绍了字符串、整型、浮点型、布尔类型数据,相信读者对这些数据类型已经很熟悉了。我们在实际工作中可能经常遇到这样一些情况,例如,通过计算得到了一个数值,需要将这个数值展现在网页上。然而,数值是不可以和字符串直接拼接到一起的。
如图2-22所示,这里我们想创建一个HTML文件,故先拼接完整的HTML页面,但是如果将字符串和数值拼接到一起,将产生一个异常,提示“TypeError: can only concatenate str (not "int") to str”。这句话的意思是,“类型错误:只能拼接字符串(非整型)与字符串”,即整型数字不能和字符串拼接到一起。那么,有没有什么办法将它们拼接到一起呢?当然有,可以将2222这个数字先转换为字符串,而后再和前后两个字符串进行拼接。这就用到了str()函数,这个函数可以将传入的参数转换为字符串。这里只需要将该脚本变为f='<html><body><h1>result:'+str(2222)+'</h1></body></html>',再通过print(f)将其内容输出即可。实际执行结果如图2-23所示。
图2-22 由于数据类型不匹配而产生错误的脚本及其执行结果
图2-23 应用str()函数进行字符串拼接的脚本及其执行结果
同样,还可以通过int()、float()函数将一个字符串转换为整型或者浮点型。
请给出如下脚本的执行结果。
1 a=567 2 print(type(a)) 3 print(type(str(a))) 4 b=123.56 5 print(type(b)) 6 print(type(str(b))) 7 c='789.67' 8 print(type(c)) 9 print(type(float(c))) 10 d='789.65abc' 11 print(type(d)) 12 print(type(float(d))) 13 e='888' 14 print(type(e)) 15 print(type(int(e))) 16 f='888ffff' 17 print(type(f)) 18 print(type(int(f))) |
接下来,我们一起来分析上面的脚本。
第1~3行代码先对变量a进行赋值,而后输出变量a的类型,变量a的类型自然应该为整型,即<class 'int'>。读者可能有疑问的地方是第3行代码。其中先执行str(a),执行结果自然是“567”这个字符串,于是第3行代码变成了print(type('567')),因此其输出结果应该是字符串类型,即<class 'str'>。
第4~6行代码与第1~3行代码类似,只不过变量b的数据类型为浮点类型,即<class 'float'>,这里不再详述。
第7~9行代码先定义了一个字符串c,其值为'789.67',print(type(c))的输出应该为<class 'str'>,print(type(float(c)))的输出应为<class 'float'>。
我们要重点说明的是第10~12行代码,变量d的值是字符串'789.65abc',故其类型自然是字符串类型,print(type(d))的输出自然为<class 'str'>,但是在执行print(type(float(d)))这条语句时会不会出错呢?因为'789.65abc'并不是一个真正的浮点数,它还包含了英文字符。实际输出结果如图2-24所示。我们可以看到执行到print(type(float(d)))这条语句的时候,系统报告了“ValueError: could not convert string to float: '789.65abc'”错误消息,该错误消息的含义是“值错误:不能将'789.65abc'这个字符串转换为浮点数”。
图2-24 类型转换异常的脚本及其执行结果
同时,我们还发现一旦脚本语句出现了异常,其后面的代码就停止执行。
从出现异常的第12行代码开始,其后面的代码均未执行。
2.2.4 缩进
缩进在Python程序中起着重大的作用,它可以使Python代码的层次结构变得清晰,提高了可读性,在一定程度上也提高了可维护性。但是如果由于自己的疏忽使缩进的位置发生了变化,那么Python程序所做的事很有可能就和当时预期的结果有天壤之别了。
这里通过一段简单的代码进行演示。
a=10 b=11 if (a>b): print("b大于a!") print('程序执行结束') |
接下来,我们对这段Python代码做一个分析,变量a的值为10,变量b的值为11,所以a>b为假,故不输出“b大于a!”,最终的输出应该为“程序执行结束”,如图2-25所示。
图2-25 符合我们意愿的缩进代码的输出结果
上面的代码是我们想要实现的,但是如果我们在编写代码的时候,使print('程序执行结束')语句前面多缩进了4个空格,那么执行结果就完全变了,如图2-26所示。
图2-26 不符合我们意愿的缩进代码及其执行结果
这段代码中因为if语句为假,所以永远不会输出“程序执行结束”。
从上面这两段代码,我们能看到由于缩进而引起的问题,由此可见缩进在Python代码中的重要意义。
缩进在Python中是用来标识不同的代码块的,通过不同的缩进来判断代码之间的关系。
2.2.5 内置函数
内置函数是Python为方便程序设计人员快速编写程序而提供的函数,在使用时直接调用即可,如print()函数就是一个内置函数。
除了print()函数外,Python还提供了哪些内置函数呢?可以通过dir(_ _builtins_ _)这条语句来获得Python提供的内置函数列表,如图2-27所示。
有很多读者可能要问:“这些内置函数的作用是什么啊?”这是一个非常好的问题,我们可以使用Python提供的另外一个内置函数help()来查看对应函数的说明。这里以查看print()函数的说明为例,如图2-28所示。
图2-27 Python提供的内置函数列表
图2-28 print()函数的说明
如图2-28所示,help()函数十分简单,只需要将要查看帮助的函数名称以参数的形式传给help()函数,就可以看到其对应的帮助信息了。以help(print)为例,可以看到在输入该指令后,输出了print()函数的相关信息,这对于初学者来讲非常有帮助。
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。