Numpy 一个用python编写的数字处理代码,当从外部调用代码和运行def文件时,输出是不同的?

Numpy 一个用python编写的数字处理代码,当从外部调用代码和运行def文件时,输出是不同的?,numpy,output,ipython,Numpy,Output,Ipython,我正在为Spyder 3.2.4 IDE中的数字运算代码编写代码,当我检查结果时,我感到困惑 功能代码为 def dictWords(dataLength): maxLength = 1. sumLengths = 2. totalWords = 2. while sumLengths < dataLength: maxLength += 1 sumLengths = 2*(maxLength*2**maxLength - 2

我正在为Spyder 3.2.4 IDE中的数字运算代码编写代码,当我检查结果时,我感到困惑

功能代码为

def dictWords(dataLength):
    maxLength = 1.
    sumLengths = 2.
    totalWords = 2.
    while sumLengths < dataLength:
        maxLength += 1
        sumLengths = 2*(maxLength*2**maxLength - 2**maxLength + 1)
    extraLength = sumLengths - dataLength
    totalWords = 2**(maxLength+1) - 2
    extraWords = np.ceil(extraLength/maxLength)
    finalWords = totalWords - extraWords
    return finalWords
def dictWords(数据长度):
maxLength=1。
SumLength=2。
totalWords=2。
当SumLength
当我通过
dl75a=BA.dictWords(75)
IPython
控制台调用它时,
dl75a
的int值为25。但这不是我所期望的价值。如果我告诉控制台dl75b=BA.dictWords(75.)
,那么我得到的浮点值为24.25-仍然不正确

但是,如果我将一些脚本
dl75=dictWords(75)
放在包含函数代码的.py文件中并运行它,那么我将得到我所期望的24.0的
float64
。看起来问题可能与
IPython
有关,可以通过在脚本中调用函数并运行它来避免。但是,如果我尝试从单独文件中的脚本调用函数,那么我会再次得到int值25,因此显然问题不在于
IPython
,而在于从包含函数的文件外部调用函数。 问题出在哪里,导致相同的功能代码根据其是否来自包含def的.py文件进行不同的解释