学python第九弹 数据的类型
学之前, 先公布上一弹的答案。
测试题
1 python中乘法使用哪个符号?
*
2 python计算 8/3 的答案是多少?
2.6666666666666665
3 怎么得到 8/3 的余数?
>>>print(8%3)
2
4 python中计算66666 的另一种做法是什么?
>>>6**5
5 采用 E 记法,17000000 要写作什么?
>>>1.7e7
6 4.56e-5 如果按照常规写法是什么?
>>>0.0000456
动手试一试
1 使用交互模式或者编写一个小程序解决下面的问题。
(a)3 个人在餐厅吃饭,想分摊饭费,总共花费 35.27 元,他们还想给 15 %的小费,每个人该怎么付钱?
(b)计算一个 12.5m ×16.7m的矩形房间的面积和周长。
#(a)题 , 使用编辑器编写
a = 35.27
a = 35.27*(1+0.15)
b = a/3
print(b)
#(b)题
length = 12.5
width = 16.7
s = length*width
c = (length+ width)*2
print(s)
print(c)
#(b)题
length = 12.5
width = 16.7
s = length*width
c = (length+ width)*2
print('长 =',length,'宽 =',width)
print('面积=',s)
print('周长=',c)
2 写一个程序,把温度从华氏度转化为摄氏度。 转化公式是 C = 5/9 *(F - 32)。
F = 88
C = 5/9*(F-32)
print(' 华氏度=',F,'摄氏度=',C)
3 你知道怎么计算坐车去某个地方需要花费多少时间吗?相应的公式(用文字表述)是“旅行时间 = 距离 ➗ 速度” 。编写一个程序,计算以180 km/h 的速度行驶 200km 需要花费多长时间,并显示答案。
s = 200
v = 180
time = s/v
print('时间=',time)
数据的类型
我们前面已经学到,至少可以为一个变量赋3种不同类型的值,:整数、浮点数、和字符串。在这一弹中我们将学习怎样区分一个值究竟是什么类型。还会了解如何由一个类型建立另一个类型。
改变类型
很多情况下,我们需要将数据从一种类型转换成另一种类型。例如,想要打印一个数字时,就需要把它转换成文本,使它能够出现在屏幕上。python的print命令可以为我们实现这点。不过,有时我们只是想转换而不需要打印出来,或者需要从字符串转换成数字(这是print无法做到的)。这称为类型转换(type conversation)。这该如何做到呢?
python实际上并没有把一个东西从一种类型“转换”成另一种类型。它只是由原来的东西创建一个新东西,而且这个新东西正是你想要的类型。下面给出一些函数,它们可以把数据从一种为另一种类型转换。
1 float()从一个字符串或整数创建一个新的浮点数(小数)。
2 int()从一个字符串或浮点数创建一个新的整数。
3 str()从一个数(可以是任何其他类型)创建一个新的字符串。
float()、int()、和str()后面的有小括号,因为它们不是python关键字(如print)——它们只是python的内置函数。(function)。
后面我们还会学习更多有关函数的内容。现在只需要知道:可以把你想要转换的值放在函数后面的小括号里。要说明这一点,最好的办法就是举一些例子。在IDLE shell中,采用交互模式完成下面的例子。
将整数转换为浮点数
下面先从整数开始,由它创建一个新的浮点数(小数),这里要使用float():
>>> a = 24
>>> b = float(a)
>>> a
24
>>> b
24.0
注意b得到一个小数,末尾有一个0。这就告诉我们这是一个浮点数而不是整数。变量保持不变,因为float()不会改变原来的值——它只是创建一个新的值。
要记住,在交互模式中,可以直接键入变量名(而不需要使用print),python会显示这个变量的值。不过这只在交互模式中奏效,在程序中是行不通的。
将浮点数转换为整数
下面再反过试试,从一个小数用 int()创建一个整数:
>>> c = 38.0
>>> d = int(c)
>>> c
38.0
>>> d
38
我们创建了一个新的整数 d,这是c的整数部分。
试一下,为什么0.1+0.2 = 0.3000000000000004
其实,这是一个舍入误差(round off error),通常舍入误差都很小,不需要担心这些误差。
>>> e = 54.99
>>> f = int(e)
>>> print(e)
54.99
>>>print(f)
54
尽管 54.99 与 55 很接近,但是得到的整数仍然是54。int()函数总是向下取整。它不会给你最接近的整数,而是会给出下一个最小的整数。实际上int()函数就是去掉小数部分。
将字符串转换为浮点数
还可以从字符串创建一个数,
>>> a = '76.3'
>>> b = float(a)
>>> a
'76.3'
>>>b
76.3
注意,显示a 时,结果两边有引号,python通过这个告诉我们a是一个字符串。显示b时就会得到浮点数值,包括所有小数位。
请大家批评指正。