2.4 基本数据类型
微视频
Python 3.x版本中有两个简单的数据类型,即数字类型和字符串类型。
2.4.1 数字类型
Python 3.x版本支持int、float、bool、complex 4种数字类型。
☆大牛提醒☆
在Python 2中是没有bool的,用数字0表示False,用1表示True。在Python 3中,把True和False定义成了关键字,但它们的值还是1和0,可以和数字相加。
1.int(整数)
下面是整数的例子:
>>> a = 666688 >>> a 666688
可以使用十六进制数值来表示整数,十六进制整数的表示法是在数字之前加上0x,如0x80120000、0x100010100L。
例如:
>>> a=0x6EEEFFFF >>> a 1861156863
2.float(浮点数)
浮点数的表示法可以使用小数点,也可以使用指数的类型。指数符号可以使用字母e或E来表示,指数可以使用+/-符号,也可以在指数数值前加上数值0,还可以在整数前加上数值0。
例如:
6.66 12. .007 1e100 3.14E-10 1e010 08.1
使用float()内置函数,可以将整数数据类型转换为浮点数数据类型。例如:
>>> float(660) 660.0
3.bool(布尔值)
Python的布尔值包括True和False,只与整数中的1和0有对应关系。例如:
>>> True==1 True >>> True==2 False >>> False==0 True >>> False==-1 False
这里利用符号==判断左右两边是否绝对相等。
4.complex(复数)
复数的表示法是使用双精度浮点数来表示实数与虚数的部分,复数的符号可以使用字母j或J。
例如:
1.5 + 0.5j 1J 2 + 1e100j 3.14e-10j
数值之间可以通过运算符进行运算操作。例如:
>>> 50 + 40 #加法 90 >>> 5.6 - 2 #减法 3.6 >>> 30 * 15 #乘法 450 >>> 1/2 #除法,得到一个浮点数 0.5 >>> 1//2 #除法,得到一个整数 0 >>> 15 % 2 #取余 1 >>> 2 ** 10 #乘方 1024
在数字运算时,需要注意以下问题:
(1)数值的除法(/)总是返回一个浮点数,要获取整数需使用//操作符。
(2)在整数和浮点数混合计算时,Python会把整数转换为浮点数。
【例2.2】计算学生的总成绩和平均成绩(源代码\ch02\2.2.py)。
name="张小明" #保存学生的姓名 print ("该学生的姓名是:"+name) maths=92.5 #保存学生的数学成绩 #使用内置的str()函数可以将数值转换为字符串 print("该学生的数学成绩是:"+str(maths)) chinese=65.5 #保存学生的语文成绩 print("该学生的语文成绩是:"+ str(chinese)) english=80.5 #保存学生的英语成绩 print("该学生的英语成绩是:"+ str(english)) sum= maths+chinese+english #保存学生的总成绩 print("该学生的总成绩是:"+str(sum)) avg= sum/3 #保存学生的平均成绩 print("该学生的平均成绩是:"+str(avg)) #使用if语句判断学生的成绩如何 if avg<65: print ("该学生的成绩较差") if 65<=avg<75: print ("该学生的成绩及格") if 75<=avg<90: print ("该学生的成绩良好") if avg>=90: print ("该学生的成绩优秀")
程序运行结果如图2-2所示。
图2-2 例2.2的程序运行结果
2.4.2 字符串类型
Python将字符串视为一连串的字符组合。在Python中,字符串属于不可变序列,通常使用单引号、双引号或者三引号括起来。这三种引号形式在语义上没有区别,只是在形式上有些差别。其中单引号和双引号的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。
例如下面的代码:
>>> a="张小明" #使用双引号时,字符串的内容必须在一行 >>> b='最喜欢的水果' #使用单引号时,字符串的内容必须在一行 >>> c='''骤雨东风对远湾,滂然遥接石龙关。 野渡苍松横古木,断桥流水动连环。 客行此去遵何路,坐眺长亭意转闲。''' >>> print (a) 张小明 >>> print (b) 最喜欢的水果 >>> print (c) 骤雨东风对远湾,滂然遥接石龙关。 野渡苍松横古木,断桥流水动连环。 客行此去遵何路,坐眺长亭意转闲。
【例2.3】输出一个小屋图形(源代码\ch02\2.3.py)。
由于该字符画有多行,所以使用三引号作为定界符比较合适。代码如下:
print(''' @@@@@@@@@ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @ @ @ @@@@@ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @@@@@@@@@@@@@@@ ''')
程序运行结果如图2-3所示。
图2-3 例2.3的程序运行结果
☆大牛提醒☆
字符串开头与结尾的引号要一致。
下面的案例将字符串开头使用了双引号、结尾使用了单引号。
>>> a = "hello world' Traceback ( File "<interactive input>", line 1 a = " hello world ' ^ SyntaxError: invalid token
由此可见,当字符串开头与结尾的引号不一致时,Python会显示一个invalid token的信息。
2.4.3 数据类型的相互转换
有时候,用户需要对数据内置的类型进行转换。数据类型的转换,只需要将数据类型作为函数名即可。以下几个内置的函数可以执行数据类型之间的转换,这些函数返回一个新的对象,表示转换的值。
1.转换为整数类型
语法格式如下:
int(x)
将x转换为一个整数。例如:
>>>int(3.6) 3
☆大牛提醒☆
int()函数不能转换成非数字类型的数值。例如,使用int()函数转换字符串时,将会提示ValueError错误。例如:
>>> int("16个工作日") Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> int("16个工作日") ValueError: invalid literal for int() with base 10: '16个工作日'
2.转换为小数类型
语法格式如下:
float(x)
将x转换为一个浮点数。例如:
>>> float (10) 10.0
3.转换为字符串类型
语法格式如下:
str(x)
将x转换为一个字符串。例如:
>>>str(123567) '123567'
【例2.4】模拟出租车的抹零结账行为(源代码\ch02\2.4.py)。
假设出租车司机因为找零钱比较麻烦,所以进行抹零操作。这里int()函数将浮点型的变量转换为整数类型,从而实现抹零效果。本案例还会用到str()函数,主要作用是将数字转换为字符串类型。
ranges=5.6 #保存乘客坐车的距离 moneys=8+(ranges-3)*2 #计算总票价 print("本次车费是:"+ str(moneys)) real_moneys=int(moneys) #进行抹零操作 print("本次实付车费是:"+ str(real_moneys))
程序运行结果如图2-4所示。
图2-4 例2.4的程序运行结果