我有一个函数生成一个字符串列表,其中放置了8个字符串
def MajorScale(s):
i = notes.index(s)
t = i
major_scale = []
major_scale.append(notes[t])
t = t+2
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+2
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+1
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+2
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+2
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+2
if t >= 12:
t = t-12
major_scale.append(notes[t])
t = t+1
if t >= 12:
t = t-12
major_scale.append(notes[t])
print(major_scale)
return major_scale
Run Code Online (Sandbox Code Playgroud)
下一个函数调用MajorScale并依赖于major_scale列表来工作
def MajorChord(s):
MajorScale(s)
major_chord = []
major_chord.append(major_scale[0])
major_chord.append(major_scale[2])
major_chord.append(major_scale[4])
print(major_chord)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该程序时,我收到错误消息"major_scale未定义"
我只是不确定我在这一点上做错了什么.如果有人能看到我正在制造的愚蠢错误,我很想知道.
您的函数MajorScale返回一个值,您不将其保存到变量中MajorChord.
def MajorChord(s):
MajorScale(s)
major_chord = []
...
Run Code Online (Sandbox Code Playgroud)
因此,计算返回值并立即丢弃.将返回值放入这样的变量中以便使用它:
def MajorChord(s):
major_scale = MajorScale(s)
major_chord = []
...
Run Code Online (Sandbox Code Playgroud)