用python写水仙花数
前几天上matlab的时候,老师布置的一道作业,用matlab写水仙花数,鉴于Blog主是学python的,所以就用了python写,写的时候偶然发现两个以前学习时候没有留意到的细节,所以特意写发个blog分享一下! 至于什么事水仙花数,呵呵,请善于利用搜索工具!下面介绍两种求三位数的水仙花数的python求法:
## 方法一:
|
|
## 方法二:
|
|
理性分割线
第一种方法是我拿到题目之后就想到的,然后就很快地写了三个for循环,可是到运行的时候就出现问题了,后来我才明白问题很严重,严重到有可能把机器直接卡死在那!下面是我的第一次的代码:
|
|
细心的你们有没有发现什么问题呢?
找不到?回去认真看一下!
对了,就是循环体里面有问题,变量 q w e 循环后的立方的值并没有用其他变量代替,而是直接用了!用了!了!这样做的话,第一次循环后就和 for x in range(10) 冲突了,但冲突了会出错吧,可问题来了,并不会出错!因为x立方后已经超出range(10)的范围了,会一直循环下去,而且数值会以立方递进的形式继续变大,直到撑爆运行内存。。。这就很尴尬了,好运的话,会提示超出运行内存,运气差的话,就可以准备重启吧。
所以,在for循环里特别要注意循环的值!这很关键!
至于第二个方法是后来老师公布matlab答案的时候的,主要的问题就在于怎样将三位数的每一个位单独取出来。需要用到了两个工具就是 % / 这两个,前者求余,后者求商,怎样用也很简单,还有规律,看客们大可以自己去摸索!
声明:
欢迎转载,转载时请注明出处
JacobYRJ