相同的定义函数 代码位置不同,导致无法正常执行

def main():
lis = [];

'''在这定义的save函数不报错!!!
def save(liss):
    try:
        sb = open(filename, 'a', encoding='utf-8');
    except:
        sb = open(filename, 'w', encoding='utf-8');
    for item in lis:
        sb.write(str(item)+'\n');
    sb.close();
    print('kkkkkk');'''
    

while True:
    
    eng = int(input('英文成绩'));
    shuxue = int(input('数学成绩'));
    zidian = {'eng': eng, 'shuxue': shuxue};
    lis.append(zidian);
    ans = input('请输入Y退出');
    if ans == 'y' or ans == 'Y':
        print('输入了Y推出', lis);
        save(lis);
        
        break;
    else:
        print('选择继续输入');
        continue;

#这定义的save函数就不能执行
def save(liss):
    try:
        sb = open(filename, 'a', encoding='utf-8');
    except:
        sb = open(filename, 'w', encoding='utf-8');
    for item in lis:
        sb.write(str(item) + '\n');

    
    print('kkkkkk');
    sb.close();

if name == 'main':
main();

img

python里面的函数必须先定义才能用的,
你在22行调用了save函数,所以必须在它之前定义
因此上面定义ok,在下面定义不行