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