首先解释一下水仙花数是什么意思,这个我当时学的时候,看到这个案例都懵了,这水仙花是什么?
解释说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个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)</code>

可以看到我们的range从100开始到1000结束的,这是因为水仙花数是一个三位数,然后呢其实引出的那个知识点就是//和/的区别了,我们如果只是普通的使用/的话,得到的结果为浮点数,后面会加.0而我们使用//的话,得到的是整数。
a = 1000
b = a // 10
c = a / 10
print(b)
print(c)#100#100.0

可以得到//和/还是有区别的,这是为什么呢?<blockquote>通常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发布时,就没有这种折中情况了,," / "就一定表示 浮点数除法,返回浮点结果;" // "表示整数除法。</blockquote>也就是说其实一开始区别不大,但是后来为了python的特性,所以做出了区别。
然后我们再看水仙花的代码,也就非常明了了。这一篇文章也就是简单的介绍了一下水仙花数怎么求,然后着重说了一下python中/和//的区别。如果有什么不会的,可以在评论区留言,我会在看到的第一时间进行回复的。

本文作者:博主:     文章标题:python 求取水仙花数进而引出/和//的区别
本文地址:https://zjzdmc.top/jsfx/80.html     
版权说明:若无注明,本文皆为“Datehoer的Blog-个人博客-技术分享”原创,转载请保留文章出处。
最后修改:2021 年 04 月 20 日 08 : 07 AM
如果觉得我的文章对你有用,请随意赞赏