Python的简单数据类型
一、数值型数据的表示及运算
数学计算中用到的数据我们称之为数值型数据,在程序中也经常使用,Pytho中的数值型数据有三大类型:整型数据、实型数据和复数型数据。
1、整型(int型):
这里说的整型数据就是指那些不带小数点的数据。
1)整型数的表示方法
指不带小数点的整数,包括正数、负数和0,有十进制、二进制、八进制和十六进制四种表示方法,0b开头的是二进制数,以0O开头的是八进制,以0x开头的是十六进,不带标记的就是十进制数。如下所示,第一个数是八进制数,第二个数是十六进制数,第三个数是二进制数,第四个是十进制数。这里的字母大小写均可。
0O1076 -0x2ad0 0b10110110 -123
我们在Python解释器窗口的提示符号后面分别输入这几个数并回车,结果如下,系统自动将其转换为十进制数进行显示。用这种方法可以快速地将二进制、八进制、十六进制数转换为十进制数。参见下图
Python对整型数据的取值范围无限制,也就是说在程序中我们可以使用任意大的整数。
2)整型数的运算符号
整型数据可以使用的运算符号包括
+(加)、 - (减)、 *(乘)、 /(除)、//整除、%(求余数)、**(乘方)
其中除运算的结果一般不再是整数,比如在Python解释器窗口的提示符后面输入 9/4,回车后显示为2.25,但若输入9//4则结果显示为2,表示9除以4后的商是2(小数被丢弃). 若输入9%4,则显示为1,表示9除以4余数是1,若输入2**4则结果显示为16,表示2的4次方是16,参见下图。
别,乘方运算符的优先级最高,加减运算的优先级最低,而乘、除、整除、求余数四个运算符的优先级别相同。当不同优先级的运算符号出现在同一表达式中时,先完成优先级高的运算,当优先级相同的运算符出现在同一表达式中时,从左向右进行求值,比如有下列表达式:
2+4*6/2**3
运算结果为5.0,这里先求出2的三次方,结果为8,表达式化简为:2+4*6/8,因乘、除运算级别相同,需按从左至右的顺序求值,先作乘法,结果为:2+24/8,再作除法运算结果为3.0,表达式化为:2+3.0,最后作加法运算,结果为5.0
注意除运算后结果为一个带小数点的数。不管是否能除尽,若不想要小数点,则需用整除运算符号进行计算。
2、浮点型(float型):
我们将数学中用到的所有带有小数点的数均称作浮点型数据。
1)浮点数的表示方法
浮点数有两种表示方法,一种是普通表示法,一种是科学记数法。普通表示法如下:
-134.5098 2.4 -0.04
下面是科学计数法表示:
123E-2 1.2234e2 -1.23788E-1 6.244E-3
上面算式中,带有字母E的是科学记数表表示的浮点数,其中字母e后面的数代表指数,如12.34e-3表示12.34乘以10的负3次方。
在Python解释器窗口中输入上面的各数,则结果如下图所示。
2)浮点数的运算符
浮点数的运算符包括
+(加)、 - (减)、 *(乘)、 /(除)、//整除、%(求余数)、**(乘方)
其中的%运算符号对浮点数虽然可以运算,但实际很少使用。两个正的带小数点的数相除求余数实际是做减法,被除数反复减去除数,直到不够减为止,最后余下差即为结果。
二个带小数点的数进行整除,实际是做除法,商去掉小数部分后作为运算结果。
注意:计算机中的浮点数(即带小数点的数)在表示时是有误差的,这一点在编写程序时要需要注意,比如1.2有可能显示为1.19999999999或1.20000000003,所以在编程时应避免用浮点数进行精确的大小比较。
3、复数类型(complex):
复数的表示格式是:a+bj
其中a和b都是浮点数,比如1.2+0.7j,就是正确的复数表示。 复数在显示时系统会用括号括起来。
复数可以使用的运算符号如下:
+(加)、 - (减)、 *(乘)、 /(除)、**(乘方)
我们在Python解释器窗口的提示符号后面依次输入如下各行内容
(3+5j)**2
(30+5j)/5
30+5j+2+5j
运行结果如下图所示。
二、字符串型数据(str)
1、字符串型数据的表示方法
字符串型数据用来表示程序中用到的文本文字、字母、键盘上各种可显示的符号,比如姓名,电话,地址等信息均要使用字符串来表示。
字符串是用一对引号括起来的一系列文字符号,引号可以是单引号,双引号,但开始结束使用的引号要相同。比如:
'邮编300072'
"滨海市河北路34号"
字符串中可以含有引号,但要和字符串开始和结束时使用的最外层引号不同,比如:
"'赵明', '男','汉'"
当字符串中含有多种引号时,可以使用连续的三个引号作为字符串的引号,比如
"""李丽丽 '女' 1960-9-9 "汉族" 滨海市大明路38号 邮编400090 """
当字符串较长要写在多行时,要使用三引号。
'''锄禾日当午,汗滴禾下土。
谁知盘中餐,粒粒皆辛苦。 '''
在Python解释器窗口的提示符后面输入上面各字符串均可以得到正确的输出。参见下图。绿色文字是输入的内容,蓝色文字是输出的内容。其中的代表字符中的换行标记。
我们有时需要在字符串中包含一些特殊字符,这时需要使用转义字符。转义字符是由反斜扛加一个字符来表示,参见下表:
下面举例来说明上面表中字符的使用方法
在解释器窗口输入下面各行命令:
输出结果如下图所示。
对上面输出结果的说明:
第一条语句中的 \n表示换行,字符串中含有这个符号,在输出时遇到\n就会产生一个换行。
第二条语句中的\t代表一个横向跳格,即光标位置跳到下一个水平制表位,所以输出时遇到这个符号,则光标跳过几个位置后再显示后面的内容。
第三条语句中的\"代表一个双引号,所以在输出的内容中该位置显示一个双引号。同理\'则代表一个单引号。
第四条语句中的\\代表一个反斜扛。所以在输出时显示为一个反斜扛。
第五条语句中的“\101”中的101是八进制,相当于十进制的65,正是大写字母A的ASCII码,所以在输出时“\101”显示为A,同理“\102”显示为B,符号“\x41”中的x41表示是十六进制数,十六进制的41相当于十进制的65,也就是字母A的ASCII码,所以也显示为字母A,同理,“\x42”显示为字母B。
注意上面表的最后一种表达方法中,反斜扛后面只能使用八进制数或以x开头的十六进制数来表示ASCII。
2、字符串型数据的运算符
能用于字符串运算的有四个运算符号,分别是“+”、“*”、“in”和“not in”,其中“+”用于连接字符串,“*”用于重复原有的字符串,比如:在Python解释器窗口的提示符后面分别输入下列内容,并按回车键,结果如下图所示。
"中国"+"人民解放军"
"ABCD"*3
命令执行的结果一个是将字符串连接成一个字符串,一个是将字符串原有内容重复了三次。
运算符“in”用于检测一个字符串是否被包含在另一个字符串中,运算符“not in”用于检测一个字符串是否未被包含在另一个字符串中,我们在Pyhton解释器窗口中分别输入下面的两条语句:
"AB" in "LABEAL"
"AB" not in "LABEAL"
结果如下图所示。
第一条语句的输出结果为True,而第二条语句的输出结果为:False,参见上图。
True的含义是“真”,False的含义是“假”
第一条语句的含义是字符串"AB"被包含在字符串"LABEAL"中吗,如果显示为True,则表示左侧的字符串被包含在右侧的字符串中,如果显示为False则表示左侧的字符串未被包含在右侧的字符串中。
运算符“not in” 和运算符“in” 恰恰相反。
第二条语句的含义是字符串"AB"未被包含在字符串"LABEAL"中吗,如果显示为True,则表示左侧的字符串未被包含在右侧的字符串中,如果显示为False则表示左侧的字符串被包含在右侧的字符串中。
三、逻辑型数据(bool)
逻辑型数据是一种特殊的数据,只有两个值,True和Fales,这两个英文单词的意思是“是”和“否”也可翻译成“真”和“假”。
逻辑型数据的运算符号有 三个:分别是 “and”、"or"、"not",它们分别读作“与”、“或”、“非”。逻辑运算具有重要的实际意义,我们后面介绍,这里只记住其运算规则即可,逻辑运算的规则如下:
1)逻辑“与”运算(and)
“逻辑与”运算的规则用一句话来概括就是:有假则假,即参与“逻辑与”运算的两个逻辑值,只要其中有一个值是“False”则结果就是“False”。在Python解释器窗口提示符后输入下列各逻辑运算式,可得到其运算结果。如下图所示。
False and False
False and True
True and False
True and True
代表真和假的逻辑值输入时要小心,英文单词的第一个字母要大写,否则会出现错误。
2)逻辑“或”运算(or)
“逻辑或”运算的规则用一句话来概括就是:有真则真,即参与“逻辑或”运算的两个逻辑值,只要其中有一个值是“True”则结果就是“True”。在Python解释器窗口提示符后输入下列各逻辑运算式,可得到其运算结果。如下图所示。
False or False
False or True
True or False
True or True
3)逻辑“非”运算(not)
逻辑“非”运算的含义是对当前逻辑值的否定,因此运算时只需要一个逻辑值,运算结果和当前参与运算逻辑值相反。在Python解释器窗口提示符后输入下列逻辑非的运算式,可得到如下图所示的运算结果。
not False
not True
Python的逻辑运算中也可以使用数字,系统将数字0看作逻辑值False,将0之外的数看作True
例如输入:0 and 1
1 or 0
not 1
not 0
程序的运行结果如下图所示。
注意:逻辑运算符的优先级是not 级别最高,or级别最低,比如下面的逻辑运算式:
False or not True and True
上式中应首先完成not True的运算,结果为 False,逻辑运算式简化为:
False or False and True
然后完成and运算,False and True 结果为False,逻辑运算式简化为:False or False
最后完成False or False的运算。所以 最后结果为False。