读故事学编程:Python王国历险记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.4 孙悟空的圈——随机小数

在我们的生活中,有些情况是无法用整数来描述的,这就是小数存在的意义。例如,几个人一起吃一个西瓜,每个人吃多少西瓜?每个人的身高是多少米?爸爸的体重是你的体重的多少倍?上面这些问题的答案只能用小数(或分数)来表示,编程世界有时候也需要一些随机小数。如果你想获得0与1之间的任意小数,你会遇到随机数语句中语法最简单的一个,如图6.3所示。

图6.3 随机小数示意图

千万别小看了这个绝对值小于1的小数,因为它可以用于表示比例、程度等概念,只要增加一个乘数就会让它变得威力无穷。

例如,《西游记》里孙悟空给他的师父画了一个圈,他的师父只在圈里活动才能避免妖怪的伤害。假如这个圈的半径为10米,如何让师父随便活动也不会出圈呢?这时候随机小数就派上用场了。我们可以用比例的思维来理解,最远的安全距离就是离圆心为半径100%的距离(也就是1),其他任何大于0且小于1的小数比例都会比1小,这正好符合我们用随机数语句random.random()生成随机小数的规范,所以代码就可以写成这样:

import random
scaleNum = random.random()
dis = 10 * scaleNum
print(dis)

又例如,我们制造了一个“飞碟”,其最快速度为5000千米/小时,我们让其自由飞行并可以随意变更速度,那么它的速度可能是多少?与上面的案例一样,我们也需要用比例的思维来解决这个问题,最后的代码可以是这样的:

import random
scaleNum = random.random()
speed = 5000 * scaleNum
print(‘飞碟的速度为’, speed, 'km/h')