相关疑难解决方法(0)

整数除法与商数相比:为什么这个令人惊讶的结果呢?

//Python 的"整数除法"运算符让我感到惊讶,今天:

>>> math.floor(11/1.1)
10.0
>>> 11//1.1
9.0
Run Code Online (Sandbox Code Playgroud)

文档读取"x和y"的"(浮动)商".那么,为什么math.floor(11/1.1)等于10,但是11 // 1.1等于9?

python python-2.x integer-division floor python-3.x

9
推荐指数
1
解决办法
6936
查看次数

包含零的数组上的香农熵

我使用以下代码在表示概率分布的数组上返回香农熵。

A = np.random.randint(10, size=10)

pA = A / A.sum()
Shannon2 = -np.sum(pA*np.log2(pA))
Run Code Online (Sandbox Code Playgroud)

如果数组不包含任何零,则此方法可以正常工作。

例子:

Input: [2 3 3 3 2 1 5 3 3 4]
Output: 3.2240472715
Run Code Online (Sandbox Code Playgroud)

然而,如果数组确实包含零,香农熵会产生 nan

例子:

Input:[7 6 6 8 8 2 8 3 0 7]
Output: nan
Run Code Online (Sandbox Code Playgroud)

我确实收到两个运行时警告:

1) RuntimeWarning: log2 中遇到除零

2) RuntimeWarning: 乘法中遇到无效值

有没有办法改变代码以包含零?我只是不确定完全删除它们是否会影响结果。具体来说,如果由于分布频率较高而导致变化较大。

python entropy pandas

6
推荐指数
1
解决办法
3627
查看次数

调用类型(1/2)返回整数?

所以我注意到了:

print type(1/2) 
Run Code Online (Sandbox Code Playgroud)

返回一个整数,但它不应该是一个浮点数?

python python-2.x

5
推荐指数
1
解决办法
3840
查看次数

Python pow**结果

为什么此示例中的内置运算符4**(1/2)(这是一个平方根运算)返回结果1而不是2应该预期的?如果不会返回一个可接受的结果,它应该会出错,但Python继续工作而没有任何崩溃.至少在Python 2.7.4 64位分发中.

它也会在数学函数中发生,pow(4,1/2)它返回1时没有错误.

相反,在执行4**(0.5)此操作时返回的结果2.0是正确的,尽管它混合了整数和浮点数而没有任何警告.pow也是如此.

对此行为有何解释?他们会被视为错误吗?

python python-2.7

4
推荐指数
1
解决办法
863
查看次数

python中的简单数学不起作用?

我刚开始学习python,我写了这三行代码:

points = 49
total = points / 50 * 500 + 40
print "omg wtf ", total
Run Code Online (Sandbox Code Playgroud)

而且我预计输出会像530一样,但相反,无论我做什么,我都会得到40.我尝试将total初始化为0,将赋值转换为int,我抛出一个括号括号,但没有任何效果.我很困惑......有人可以帮我/告诉我到底发生了什么事吗?

python math

3
推荐指数
2
解决办法
1140
查看次数

强制Python计算为double

我想在Python中打印一个double.但它不起作用,我不知道为什么.

我的代码:

test = 3000 / (1500 * 2000)
print str(test)
Run Code Online (Sandbox Code Playgroud)

如果我做以下事情,我总是得到一个0而不是一个0.001:

test = 3000 / (1500 * 2000)
print '%.10f' % test
Run Code Online (Sandbox Code Playgroud)

我得到了一个0.000000000而不是0.001.

我怎么告诉Python这应该是双倍的?

python

1
推荐指数
1
解决办法
6628
查看次数

用于计算项目的xp的python代码

我正在尝试将C++代码转换为python但我被卡住了

原始的C++代码

int main(void)
{
    int levels = 40;
    int xp_for_first_level = 1000;
    int xp_for_last_level = 1000000;

    double B = log((double)xp_for_last_level / xp_for_first_level) / (levels - 1);
    double A = (double)xp_for_first_level / (exp(B) - 1.0);

    for (int i = 1; i <= levels; i++)
    {
        int old_xp = round(A * exp(B * (i - 1)));
        int new_xp = round(A * exp(B * i));
        std::cout << i << " " << (new_xp - old_xp) << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

python代码

import math …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

1
推荐指数
1
解决办法
144
查看次数

Python:由更大的数字划分

print 1/50
Run Code Online (Sandbox Code Playgroud)

结果为舍入零:0

print float(1/50)
Run Code Online (Sandbox Code Playgroud)

再次返回零但是作为一个浮点数.

我应该使用什么语法来仅使用stock模块获得正确的结果(0.02).

python

1
推荐指数
3
解决办法
134
查看次数

Python while循环添加错误

好吧所以我几天前几乎没有上课,对我来说一切都是新的.我想要做的是创造一些东西,将摄氏温度转换为华氏温度和开尔文,我已经做到了,虽然它有点草率.

无论如何我的问题是累加器.当我得到所有摄氏度的总和时,我得到231当它应该是210.它增加了21我从"摄氏度<21.

任何人都可以帮我弄清楚如何获得正确的数字:/?谢谢!

print ("Celsius Conversion Chart")


sum = 0
sum1 = 0
sum2 = 0
celsius = 0

while celsius < 21:
    print (str(celsius)+'°C ' + ' = ' + str(celsius*9/5+32)+'°F ' + ' = ' + str(celsius +273.15)+'°K')
    celsius += 1
    sum = sum + celsius
    sum1 = sum1 + (celsius * 9/5 + 32)
    sum2= sum2 + (celsius + 273.15)

print (str(sum1)+'°F')
print (str(sum2)+'°K')
print (str(sum)+'°C')

if celsius < 100:
    print ("WARNING: temperature is too high")
Run Code Online (Sandbox Code Playgroud)

python loops while-loop

1
推荐指数
1
解决办法
118
查看次数

当向下舍入的值不是 0 时,为什么这个浮点除法会产生零?

我正在练习 C++,但发现了一些问题:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int a = 2;
    {
        cout << a;
        cout << "\n";
        float a = a / 2;
        cout << "a= a/2 = ";
        cout << a;

    }
    cout << "\n";
    a = 2;
    {
        cout << a;
        cout << "\n";
        float b = a / 2;
        cout << "b= a/2 = ";
        cout << b;

    }
}
Run Code Online (Sandbox Code Playgroud)

这个回报:

2 
a= a/2 = 0 
2 
b= a/2 = 1 …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
86
查看次数