我对Python编程比较陌生。我遇到了一个问题,我定义为全局的变量在定义中没有更新。我(尽管我尽了最大的努力)无法绕过可能出错的地方。
以下是代码:
import math
import numpy as np
arraySize = 10
arrayPrecision = 0.1
array = []
x = 0
f_x = x
def arrayMaker():
global x
global f_x
for n in np.arange(-arraySize/2, 0, arrayPrecision):
x = n
array.append(f_x)
for n in np.arange(0, (arraySize/2)+0.1, arrayPrecision):
x = n
array.append(f_x)
print(array)
arrayMaker()
当我运行此代码时,它会打印一个填充了零的数组,表达式f_x将返回0.
任何帮助都将不胜感激。
答案 0 :(得分:0)
从评论中看,你似乎误解了一些事情,但这就是你正在寻找的东西。从本质上讲,您正在寻找对f_x
的延迟评估。名称f_x
实际上是一个函数,因此您应该像函数一样定义它。这是你的代码调整。
import math
import numpy as np
arraySize = 10
arrayPrecision = 0.1
array = []
x = 0
f_x = lambda x: 3*x+4
def arrayMaker():
for n in np.arange(-arraySize/2, 0, arrayPrecision):
x = n
array.append(f_x(x))
for n in np.arange(0, (arraySize/2)+0.1, arrayPrecision):
x = n
array.append(f_x(x))
print(array)
arrayMaker()