爸爸教我学Python编程-第13课-非常大和非常小-少儿编程教育网

爸爸教我学Python编程-目录

如果你对计算机感兴趣,想更多地了解它到底怎么工作,想知道怎样才能让??它做你想做的事情,这也不失为学习编程的一个好理由。…

还记得第1章中将两个非常大的数相乘吗?我们得到的答案也是一个非常大的数。有时Python会用一种稍微不同的方式显示非常大的数,可以在交互模式中试试看:

>>> print 993812345656.34*4823459023067.456

4.79389717413e+025

>>>

(具体键入什么数并不重要--任何包含小数的大数值都可以。)

这个e是计算机中显示非常大或非常小的数时采用的一种方法。这叫做E记法(E-notation)。处理非常大(或非常小)的数时,要把所有数字以及小数位都显示出来可能很费劲。

这种数在数学和科学领域经常出现,例如,如果一个天文程序要显示从专心地球到Alpha Centaur 星的公里数,可能会显示38000000000000000或者38 000 000 000 000 000(38后面有15个0)不论哪种方式,数完所有这些0都会让你累得够呛。

显示这些数还有另一种方式,就是使用科学计数法(scientific notation),就是一个小数再乘以一个10的幂。在科学计数法中,地球到Alpha Centaur 的距离可以写作:3.8 X 1016(看到了吗,16抬高了,而且要小一点)这读作“3.8乘以10的16次幂”或者“3.8乘以10的16次方”。它的意思就是,把3.8的小数点向右移16位,并在这个过程中根据需要补0.

爸爸教我学Python编程-第13课-非常大和非常小-少儿编程教育网

如果可以像这里一样,把16写作指数,稍稍抬高一点,再写得小一点,科学计数法就很适用。如果你用纸和笔,或者使用一个支持上标的程序,就可以用科学计数法。

·术语箱

爸爸教我学Python编程-第13课-非常大和非常小-少儿编程教育网

不过并不是哪里都能使用上标,所以还有另一种方法,就是E记法,E记法只是科学计数法的另一种写法。

·E记法

在E记法中,这个数要写作3.8E16或者3.8e16.读作“3.8指数16”或者简读作“3.8e16”.这里假设指数是10的幂,这就等同于写成3.8 X 1016。

在大多数程序和计算机语方(包括Python)中,大写和小写E都是允许的。

对于非常小的数,如0.00000000000001752,可以使用一个负指数,科学计数法会写作1.752 X 10-13,E记法会写作1.752e-13.负指数表示要把小数点向左移而不是向右移。

爸爸教我学Python编程-第13课-非常大和非常小-少儿编程教育网

采用E记法,可以在Python中输入非常大和非常小的数(或者可以是任何数)。后面我们还会学习如何让Python使用E记法打印数。

试试采用E记法输入一些数:

>>> a = 2.5e6

>>> b = 1.2e7

>>> print a + b

14500000.0

>>>

尽管我们用E记法输入了数,但得出的答案却是一个常规的小数,这是因为,除非你特别要求,或者数字确实非常大或者非常小(有很多个0),否则Python不会用E记法显示数字。

可以试试看:

>>> c = 2.6e75

>>> d = 1.2e74

2.72e+075

>>>

这一次Python会自动用E记法显示答案,因为显示一个有73个0的数太不可思议了!

如果希望用E记法显示类似14500000的数,需要给Python下达一些特殊的指令。我们将在本书的第21章学习更多相关内容。

爸爸教我学Python编程-第13课-非常大和非常小-少儿编程教育网

·指数与E记法

不要把自乘得到幂(也称为求幂)和E记法弄混了

3**5表示35,或者“3的5次幂”,也就是3*3*3*3*3,等于243.

3e5表示3*105或者3乘以10的5次幂,也就是3*10*10*10*10*10,结果等于300 000 .

求幂是指一个数自乘得到的幂。E记法表示乘以10的几次幂。

有些人可能会把3e5和3**5都读作“3指数5”,不过,它们是完全不同的,怎么读并不重要,只要你懂得它们分别代表什么含义。

·你学到了什么

在这一章,你学到了以下内容。

用Python如何完成基本数学运算

整数和浮点数

求幂(自乘得到一个幂)

如何计算取余(余数)

E记法的有关内容

·测试题

1、Python中乘法使用哪个符号?

2、Python计算8/3的答案是什么?

3、怎么得到8/3的余数?

4、怎么得到8/3的小数结果?

5、Python中计算6*6*6*6的另一种做法是什么?

6、采用E记法,17 000 000 要写作什么?

7、4.5e-5如果按常规的写法是什么(不是E记法)?

·动手试一试

1、使用交互模式或者编写一个小程序解决下面的问题。

(a)3个人在餐厅吃饭,想分摊饭费,总共花费35.27美元,他们还想留15美分的小费,每个人该怎么付钱?

(b)计算一个12.5m X 16.7m的矩形房间的面积和周长。

2、写一个程序,把温度从华氏度转换成摄氏度,转换公式是C=5/9*(F-32)。(提示:当心整除问题!)

3、你知道怎么计算坐车去某个地方需要花多长时间吗?相应的公式(用文字表述)是“旅行时间等于距离除以速度”编写一个程序,计算以8 km/h的速度行驶200km需要花多长时间,并显示答案。