파이썬 리스트관련 질문
조회수 1193회
이 문제에서 4번을 해결해 보려고
for i in range(len(table[0])) :
print(table[0][i])
sum=0
for j in range(1,len(table)) :
for k in range(1,len(table[j])) :
sum=sum+table[j][k]
print("총점은",sum,"평균은",sum/(len(table)-1))
이렇게 했는데
이런값이 나와버려서 바깥 for문을 먼저 반복시키려고 했는데 안되서 for문을 하나만 써보려고
student=["A","B","C","D","E"]
score1=["Korean",89,90,75,96,75]
score2=["English",92,65,82,65,98]
score3=["Math",78,88,68,92,45]
score4=["Science",66,78,88,95,85]
table=[student,score1,score2,score3,score4]
for i in range(len(table[0])) :
print(table[0][i],"학생")
sum=0
for j in range(1,5) :
sum=table[1][j]+table[2][j]+table[3][j]+table[4][j]
print("총점은",sum,"평균은",sum/(len(table)-1))
이렇게 했는데 이제는
이렇게 총점도 틀리게 나오고 각 학생별 점수도 똑같이 나와버려서 이제는 어떻게 해결해야할지 모르겠습니다. 8시간동안 이문제만 잡고 어떻게든 해보려고 하는데 for문을 뒤집는 방법도 모르겠고 왜 저렇게 똑같은 값만 나오는지도 모르겠습니다. 고수님들 도와주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
student=["A","B","C","D","E"] score1=["Korean",89,90,75,96,75] score2=["English",92,65,82,65,98] score3=["Math",78,88,68,92,45] score4=["Science",66,78,88,95,85] table=[student,score1,score2,score3,score4] for i in range(len(table[0])) : print(table[0][i],"학생") sum=0 sum=table[1][i+1]+table[2][i+1]+table[3][i+1]+table[4][i+1] print("총점은",sum,"평균은",sum/(len(table)-1))
이렇게 하면 되고요.
이렇게 생각하며 문제부분을 찾아간 것 같아요. 참고하세요.
- 학생마다 점수가 다른데, 왜 모두 같은 값으로 계산될까?
- 학생을 구분하는 인덱스는 첫번째 for 문의 i 이다.
- i 인덱스가 각 학생의 점수를 구분하는 것이겠다.
- 이전에 틀렸던 코드에서는
sum
을 구하는 코드에서i
인덱스는 전혀 생관이 없었다. 아하, 그래서 모두 같은 계산이 나왔구나. - 옳은 계산은
i
인덱스가 식에 포함되어야 한다.
댓글 입력