Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 求取水仙花数进而引出/和//的区别

python 求取水仙花数进而引出/和//的区别

浏览: 作者:Datehoer 发布日期:2020-12-06 15:50:49 来源: 原创
首先解释一下水仙花数是什么意思,这个我当时学的时候,看到这个案例都懵了,这水仙花是什么?
解释说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 + 5^3+ 3^3=153。用人话说一下就是,一个三位数,然后它的每个数的立方和加起来等于它本身。
其实这个例子在很早以前都不常用,最近我发现大多数的教程实例都有求取水仙花数的例子,所以准备写一下这个的案例解析。
首先简单的上一下代码。

for num in range(100, 1000):
    low = num % 10
    mid = num // 10 % 10
    high = num // 100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(num)
可以看到我们的range从100开始到1000结束的,这是因为水仙花数是一个三位数,然后呢其实引出的那个知识点就是//和/的区别了,我们如果只是普通的使用/的话,得到的结果为浮点数,后面会加.0而我们使用//的话,得到的是整数。
a = 1000
b = a // 10
c = a / 10
print(b)
print(c)
#100
#100.0
可以得到//和/还是有区别的,这是为什么呢?
通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:
6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;
6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2.0,跟精确的说,只要" / " 两边有一个数是浮点数,那么结果就是浮点数。
在Python2.2版本以前也是这么规定的,但是,Python的设计者认为这么做不符合Python简单明了的特性,于是乎就在Python2.2以及以后的版本中增加了一个算术运算符" // "来表示整数除法,返回不大于结果的一个最大的整数,而" / " 则单纯的表示浮点数除法,但是,为了折中,所有2.X版本中,也是为了向后兼容,如果要使用" // ",就必须加上一条语句:
from __future__ import division
一看到这句," / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。
但是,预计在Python3.0发布时,就没有这种折中情况了,," / "就一定表示 浮点数除法,返回浮点结果;" // "表示整数除法。
也就是说其实一开始区别不大,但是后来为了python的特性,所以做出了区别。
然后我们再看水仙花的代码,也就非常明了了。
这一篇文章也就是简单的介绍了一下水仙花数怎么求,然后着重说了一下python中/和//的区别。
如果有什么不会的,可以在评论区留言,我会在看到的第一时间进行回复的。

版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/80.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!