import math
x = open('assignment_2_Q1_input.txt', 'r')
li = x.readlines()
re = [x.strip() for x in li if x.strip() !=""]
li2 = re[1].split()
q = int(re[0])
x.close()
def sq(x,y,n):
z=(y-x)%n
pai=(y-x)//n
for i in range(x,x+z):
for j in range(0,pai):
www += int(li2[x+pai*n])
return www
for a in range(0,q**2-1,1):
for b in range(1,q**2):
sum=sq(a,b,q)
if max >= sum:
max=sum
y = open('assignment_2_Q1_output.txt','w')
y.write(str(sss))
y.close()
def sq(x,y,n):
下面加上
www = 0
我们看看你这句代码的含义
www += int(li2[x+pai*n])
这等价于 www = www + int(li2[x+pai*n])
可是你的www没有事先声明,因此程序会报错
只要在for循环前面加上www=0,即初始化www的值就可以
另外建议代码的变量名尽量起的有含义一点,能增强代码的可读性