购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 基本数据类型

通过实例2—3可以得知,Python中的变量可以存储多种数据类型的数据。例如用于数学运算的数字类型、用于处理文本信息的字符串类型、用于判断真假的布尔类型。下面将详细介绍这几种数据类型。

2.2.1 数字类型

在生活中,经常使用数字,例如记录考试的成绩、统计网站的访问数据、计算营业额、制作公司的财务报表等。Python语言提供了数字类型,用来保存这些数值。如果要修改数字类型的变量,Python就会把该变量值放到内存中,然后修改变量让其指向新的内存地址。

在Python语言中,数字类型主要包括整数、浮点数、复数。

1.整数

整数类型是用来表示只有整数部分而没有小数部分的数值,包括正整数、负整数、0。在Python中,保存一个整数需要多大的内存?Python会根据整数的大小来分配需要的字节数(1字节等于8位二进制)。如果某些数值超过了计算机本身的计算能力,Python则会自动采用高精度计算。

通过Python内置函数input(),可以得到键盘输入的数据信息。这些数据信息是字符串类型的,可以通过内置函数int(x),将x转换成整数类型。

整数类型包括十进制整数、二进制整数、八进制整数、十六进制整数。

(1)十进制整数:由0~9组成的数字,进位规则是逢10进1。各位读者对十进制整数很熟悉,在实际生活、工作中经常使用。

(2)二进制整数:由0、1组成的数字,进位规则是逢2进1。在Python中,以0b或0B开头的数字表示二进制。例如0b101(转换成十进制为5)、0b1001(转换成十进制为9)、-0b101、-0b1001。

(3)八进制整数:由0~7组成的数字,进位规则是逢8进1。在Python中,以0o或0O开头的数字表示八进制。例如0o135(转换成十进制为93)、0o246(转换成十进制为166)、-0o135、0o246。

(4)十六进制整数:由0~9、a、b、c、d、e、f组成,进位规则为逢16进1。在Python中,以0x或0X开头的数字表示十六进制。例如0xf(转换成十进制为15)、0x1d(转换成十进制为29)、-0xf、-0x1d。

在Python交互窗口中的执行结果如图2—5所示。

图2—5 二进制、八进制、十六进制的整数表示

在Python语言中,使用内置函数bin(),可以将十进制整数转换成二进制整数;使用内置函数oct(),可以将十进制整数转换成八进制整数;使用内置函数hex(),可以将十进制整数转换成十六进制整数。

【实例2—4】 将十进制整数2、4、8、16、32,分别转换成二进制、八进制、十六进制的整数,代码如下:

    #===第2章代码2-4.py===#
    print('十进制整数2、4、8、16、32转换成二进制整数为')
    print(bin(2))
    print(bin(4))
    print(bin(8))
    print(bin(16))
    print(bin(32))
    print('十进制整数2、4、8、16、32转换成八进制整数为')
    print(oct(2))
    print(oct(4))
    print(oct(8))
    print(oct(16))
    print(oct(32))
    print('十进制整数2、4、8、16、32转换成十六进制整数为')
    print(hex(2))
    print(hex(4))
    print(hex(8))
    print(hex(16))
    print(hex(32))

运行结果如图2—6所示。

图2—6 代码2—4.py的运行结果

注意: 如果读者不熟悉进制转换等数学知识,则完全不用纠结。只需记住Python可以被当成一个特殊的计算器来使用,这个计算器能实现进制之间的转换。市面上的科学计算器可没有这项功能。各位读者,可以思考一下:为什么Python中除了十进制以外,还有二进制、八进制、十六进制?为什么人类的生活中除了十进制,还有十二进制、二十四进制、六十进制(钟表显示的时间)?

2.浮点数

浮点数是指由整数部分和小数部分组成的数值,主要用于处理含有小数部分的数。例如3.1415929、0.3、-0.3、1.732、-1.732。浮点数可以使用科学记数法表示。例如3500可以表示成3.5e3,0.035可以表示成3.5e-2,-0.035可以表示成-3.5e-2。

通过Python的内置函数input(),可以得到键盘输入的数据信息。这些数据信息是字符串类型的,可以通过内置函数float(x),将x转换成整数类型。

【实例2—5】 创建一段程序,根据输入的半径数值,计算该圆的周长和面积,代码如下:

    #===第2章代码2-5.py===#
    print("请输入这个圆的半径:")
    radius=float(input())
    perimeter=2*3.14*radius
    area=3.14*radius*radius
    print("该圆的周长为",perimeter)
    print("该圆的面积为",area)

运行结果如图2—7所示。

图2—7 代码2—5.py的运行结果

注意: 在使用浮点数进行计算时,会出现小数位数不确定的情况,例如图2—7中的周长。对于这种情况,所有的编程语言都存在该问题,暂时忽略多余的小数即可。

3.复数

Python中的复数是指由实数部分和虚数部分组成的数值,这与数学上的复数形式完全一致。使用j或J表示虚数部分,简称为虚部。例如虚数1+2j、1.414+1.732j、1.414-1.732j。在Python中,也可以使用内置函数complex(real,imag)来创建复数,其中real指实数部分的数值,imag指虚数部分的数值,如图2—8所示。

图2—8 在Python中创建复数

如果把Python当作计算器来使用,Python的计算范围不仅有实数范围,还包含虚数部分的复数。有兴趣的读者,可以使用Python来计算复数之间的加、减、乘、除。

2.2.2 字符串类型

在实际生活中,经常用到文本信息。例如在搜索引擎上输入的文字、在手机App上搜索框输入的信息。这些文本信息被Python归类为字符串类型。字符串就是一系列的字符,包括中文、英文、特殊符号等能被计算机所表示的字符的集合。

在Python中,字符串属于不可变的字符序列,通常使用单引号('')或双引号("")括起来。当然,这是在输入法设置在英文状态下的单引号和双引号,如果设置在中文状态下,则会出现编译错误。

如果要在字符串中输入一些特殊字符,就需要使用转义字符。转义字符是指使用反斜线(\)对一些字符串进行转义。例如'This is Tom\'s computer'。在两个单引号之间,还要使用单引号,为了不引起编译错误,使用转义字符。例如"司马迁对项羽的评价是\"自矜功伐,奋其私智而不师古。\""。在两个双引号之间,还要使用双引号,为了不引起编译混乱,使用转义字符。在Python中的运行结果,如图2—9所示。

图2—9 转义字符的使用

当然在使用单引号的情况下,可以使用转义字符表示双引号;在使用双引号的情况下,可以使用转义字符表示单引号。Python中常用的转义字符见表2—1。

表2—1 Python中常用的转义字符

【实例2—6】 使用转义字符,创建一段Python程序,打印苏轼的《定风波》,代码如下:

    #===第2章代码2-6.py===#
    str1="定风波\n作者:苏轼"
    str2="莫听穿林打叶声,何妨吟啸且徐行.\012竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.\n"
    str3='料峭春风吹酒醒,微冷,山头斜照却相迎.\x0a回首向来萧瑟处,归去,也无风雨也无晴.'
    print(str1)
    print(str2)
    print(str3)

运行结果如图2—10所示。

图2—10 代码2—6.py的运行结果

注意: 如果在字符串的定界符之前加上字母r或R,则字符串将原样输出,其中的转义字符不进行转义。例如str1=r"定风波\n作者:苏轼",打印该字符串变量后,将原样输出。

2.2.3 布尔类型

布尔类型主要用于判断真假的真值或假值。在Python中,使用关键词True表示真的布尔值;使用关键词False表示假的布尔值。另外布尔值可以解释成特殊的整型,True表示1,False表示0。

在Python中,布尔类型的值可以进行数学运算。例如“True+3”的结果是4,但不建议对布尔类型的值进行数学运算。

注意: 在Python中,除了以上3种基本数据类型,还有一个表示空的数据类型:None。各位读者可以在交互命令行窗口中输入type(None),查看这个None数据。如果对None进行真值测试,则其结果和False一样,即都是假。

2.2.4 数据类型转换

因为Python是动态类型的编程语言,所以创建变量的语句不需要事先声明变量的类型。Python中的变量类型是根据变量值来确定的。在编程实践中,需要用到变量类型的转换。例如内置函数input()得到的输入数据是字符串类型的,有时需要将输入的数据转换成浮点型,以便进行数值计算。

Python提供了丰富的内置函数,用于数据类型的转换。常用的类型转换函数见表2—2。

表2—2 常用的类型转换函数和作用

有了数据类型转换函数的帮助,Python内置函数print()便可以使用两种方式打印输出信息,第1种是print(str1,num1),str1是字符串类型的变量,num1是数字类型的变量,使用逗号来分隔。第2种是print(str1+str2),str1、str2都是字符串类型的变量,可以使用加号来连接,如图2—11所示。

图2—11 内置函数print()的两种用法

注意: 使用print(str1,num1)打印输出,两个变量之间会有一个空格。使用print(str1+str2)打印输出,两个变量之间没有空格。 /OSlE49wb2yHy2hkHqIlvz6l5FoolXvyjph0JOpGy/3gIs95tmZWGnqIGunOWcx4

点击中间区域
呼出菜单
上一章
目录
下一章
×