求大佬解答,python刚用的list后一次输入会覆盖前一次输入的内容

amount = input('How many courses have you taken?')
amount = int(amount)
times = 1
i = 0
j = 0
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
list2 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
while times <= amount:
    list1[i] = input('Enter the course code for course#' + str(times) + ':')
    print('\n')
    list2[j] = input('What was the grade?:')
    list2[j] = int(list2[j])
    print('\n')
    i += i
    j += j
    times += times
print('PRELIMINARY TRANSCRIPT')
print('\n')
a = 0
b = 1
while b <= amount:
    print(str(list1[a])+': ' + str(list2[a]))
    print('\n')
    a += a
    b += b
avg = sum(list2) / amount
print('Average Grade: ' + str(avg))

这段代码是可以print输入的课程号和成绩

比如我输入a 79分

                   b 81 分

但输出的是b 81

               b 81

a和79的数据就不知道去哪里了

你的第一个循环写的是i+=i,j+=j,而二者初值都是0,所以非常显然地,每次你输入的都是下标为0位置上的数据,i和j在第一个循环中永远都是0。我猜你想写的是i+=1,j+=1。第二个循环的a+=a,b+=b也相当令人困惑(a会永远都是0),估计是类似的情况。

是i += 1

不是i += i

j += j

a += a

b += b

也都不对

 

i += i、j += j、a += a、他们的初始值一直是 0 , 所以你再怎么加他还是 0 哦, 也就是说你每次该的列表索引都是同一个, 所以会覆盖之前的.