这个小程序主要想实现同名文件不被覆盖,比如如果已有zjw.pdf,就把文件名改成zjw1.pdf,以此类推,但发现运行到第三次时程序报错(陷入死循环),似乎全局变量n永远都等于0。这是为什么呢?

import os
n=0
def check_filename(filename):
    global n
    if os.path.isfile(filename):

        n=+1
        print(n)
        new_filename='zjw'+str(n)+'.pdf'

        new_filename=check_filename(new_filename)
        return new_filename
    else:
        return filename

with open(check_filename('zjw.pdf'),'w') as fp:
    fp.write('文件内容')
print(n)

你把n+=1写成n=+1了,后者的含义是令n等于正一
有帮助望采纳~