Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换Python终端中的pi值_Python_Python 3.x - Fatal编程技术网

替换Python终端中的pi值

替换Python终端中的pi值,python,python-3.x,Python,Python 3.x,我对python非常陌生&我自己学习。 我发现自己在一个奇怪的情况下使用下面的代码 import math math.pi = 1 现在,如何恢复到pi的原始值?python中的数学模块具有各种预定义的函数和常量,以使代码在复杂性方面更加容易。 建议不要重新定义这些常量的值,因为这可能会在运行时给程序带来问题。第二,重新定义常数的值没有意义,是吗 如果您需要为以后的用户存储一些值,请为此创建一个单独的变量,并在以后使用它。示例:-a=1(这将创建一个名为a的变量,其值为1)我找到了一个可行的解

我对python非常陌生&我自己学习。 我发现自己在一个奇怪的情况下使用下面的代码

import math
math.pi = 1

现在,如何恢复到pi的原始值?

python中的数学模块具有各种预定义的函数和常量,以使代码在复杂性方面更加容易。 建议不要重新定义这些常量的值,因为这可能会在运行时给程序带来问题。第二,重新定义常数的值没有意义,是吗


如果您需要为以后的用户存储一些值,请为此创建一个单独的变量,并在以后使用它。示例:-a=1(这将创建一个名为a的变量,其值为1)

我找到了一个可行的解决方案。虽然我很确定这被认为是一种不可靠的黑客行为,但它确实有效。如果从
sys.modules
中删除
'math'
,它将正确重新加载。字典
sys.modules
包含大量系统信息,很可能不需要编辑。但另一方面,pi的值也是如此

>>> import sys
>>> import math
>>> math.pi
3.141592653589793
>>> math.pi=1
>>> math.pi
1
>>> sys.modules.pop('math')
<module 'math' (built-in)>
>>> math.pi
1
>>> import math
>>> math.pi
3.141592653589793
>>> 
导入系统 >>>输入数学 >>>数学圆周率 3.141592653589793 >>>数学pi=1 >>>数学圆周率 1. >>>sys.modules.pop('math') >>>数学圆周率 1. >>>输入数学 >>>数学圆周率 3.141592653589793 >>>
因为我不相信这个解决方案的稳定性,所以我将提供我的Python版本供将来参考:3.5.3。我不知道我是否有必要为一个永远不会发生的问题提供“正确的解决方案”。

为什么要重新分配math.pi的值?只需键入
exit()
-)
math.pi=3.1415926535897932384626433832795
就足够了吗?;)您退出并重试了吗?还有,不要做这样的事PDOE Python没有禁止为系统变量赋值的检查吗?这不是一个很大的“负”