【发布时间】:2023-02-21 23:50:01
【问题描述】:
我有以下代码:
import numpy as np
import matplotlib.pyplot as plt
Rnm1_list = []
coordsA=[]
for a in range(2):
c1= np.array([0,0])
c2= np.array([a,0])
a1= np.array([3/2*a,3**0.5/2*a])
a2= np.array([3/2*a,-3**0.5/2*a])
def Rnm_1():
for n in range(-1,2):
for m in range(-1,2):
Rnm1= c1 + (n*a1+m*a2)
Rnm1_list.append(Rnm1)
return Rnm1_list
coordsA.append(Rnm1_list)
在此代码中,我的 a 没有改变,它一遍又一遍地生成相同的数组,我不明白为什么? 你能帮我找出问题出在哪里吗?
我尝试了 range、linspace 并生成了一个具有值的数组,a 没有以任何这些方式发生变化。 我做错了什么,但我无法弄清楚。
【问题讨论】:
-
问题到底是什么?
coordsA只包含一堆空列表?那是因为你从不打电话给Rnm_1()。 -
每次循环时,您都在重新定义
Rnm_1,并且您永远不会调用它 -
我不确定你在这里的目标是什么,但你永远不会调用你的
Rnm_1函数,或将Rnm1_list分配给空列表以外的任何东西。 -
为什么要在循环内定义函数?