2010-01-04 151 views
-6
import decimal        # Decimals 
a=decimal.getcontext().copy() 
print a 

什么是有用的。'decimal.getcontext()。copy()'是什么意思

+6

hm。属于variableoverflow.com – moritz 2010-01-04 06:23:58

+16

@ zjm1126,您的个人资料要求我们用'code'而不是说明来回答,并且我注意到您的问题通常采用代码片段的形式。现在,经过60多个问题,我们可以看到你只希望仅仅复制代码而不理解它*。这不是编程的方式。你应该花时间学习和理解编程语言,然后才能期望编程。我意识到编程期望你熟悉英语,这可能是一个问题。对此我们无能为力。 **你必须学习它,恐怕。祝你好运。 – pavium 2010-01-04 06:38:21

+1

非常感谢,我会努力。 – zjm1126 2010-01-04 07:13:31

回答

4

虽然我同意这里的其他许多评论,但我认为我会投入一块骨头。

decimal模块是一种用于对任意精度数进行运算的实用程序。这在一些科学环境中用于计算遇到舍入误差的事物。经典的例子是计算pi的第9999位。你不能用浮动来做到这一点。

小数库使用“上下文”的概念来决定你真正想要的精度。由于您想要的精度越高,计算运行速度越慢。 decimal.getcontext()部分返回默认上下文。但是通过一个疯狂的“陷阱”(我实际上已经成为猎物),这实际上只是一个指针。因此,如果您要更改decimal.setcontext('foo')的上下文,您实际上也会更改a。手动模块有一个.copy()方法。

原始程序员可能是这样做的,以保存上下文的副本供以后使用。也许他/她想以较低的精度执行部分计算以节省时间,然后想要以更高的精度执行困难的部分。

虽然蟒蛇> 2.5,这是最好的像一个上下文管理器完成“与”

from decimal import localcontext 

with localcontext() as ctx: 
    ctx.prec -= 5 # Perform a low precision calculation 
    s = calculate_something() 
s = +s # Round the final result back to the default precision 

但是,如果没有相关的代码的其余部分我的猜测是没有比你更好。

尽管我已经使用了十进制模块,但在python文档here中很容易找到所有这些。试着去那里,先找到这样的问题......如果你能弄明白自己,你会记得更久。当你回答问题时,你会感受到我们其他人的感受。

+0

@JudoWill,我认为你的答案的“代码”部分*最令人印象深刻。想想看。 – pavium 2010-01-04 10:11:15

+0

@pavium,我不能分辨你的表情是否刻薄或严肃。 – JudoWill 2010-01-04 10:55:56

+3

@JudoWill:这里的基本问题是@ zjm1126正在阅读的东西很少,如果我们写的东西,因此@pavium上面提到,根本就没有学习如何帮助自己。我们可以继续捐赠代码片段,但我们正在浪费OP的时间和我们的时间。在获得散文回应之前,他确实需要学习更多英语。 – bernie 2010-01-04 17:07:23

3

一个是可变的,你可以很容易地已经把

import decimal        # Decimals 
print decimal.getcontext().copy() 

要删除提及a

1

我想答案是,在这个特殊的情况下,也是没有名字目的

然而,在事更大的计划,如果你需要使用的

a=decimal.getcontext().copy() 
值0

,那么你不想重新计算它,因为这个函数可能会改变,或者它可能是一个昂贵的操作。

7

我回答假设一个新手。

“a”是一个变量。变量是一个逻辑单元,它在执行程序时在计算机内存上保存一个值/字符串等。例如,如果要添加1和2并获得答案,则应在内存中创建一个“变量”,例如“a”,并将“+1”的值指定为1 + 2。

在此代码中,已经导入了一个名为decimal的库。它包含一组操作或方法。然后你对它执行一些操作并将输出分配给一个名为“a”的变量。然后你试图把它打印到控制台。

N.B:你不应该使用像a,b这样的变量名。这不是一个好习惯。你应该使用一个有意义的词。