메모장

파이썬 numpy [ 실습 ] 본문

Python/개념정리

파이썬 numpy [ 실습 ]

Itchild 2024. 5. 14. 16:33
728x90
반응형

 

✔️ 예제

 

➡️ 학생 3명이 국어, 영어 ,수학 3 과목을 중간고사, 기말고사 2번에 걸쳐 시험을 보게 된다.

학생1
	국어	50	60
	영어	12	13
	수학	10	20
학생2
	국어	50	60
	영어	12	13
	수학	10	20
학생3
	국어	50	60
	영어	12	13
	수학	10	20
 
studentList=[] # 학생을 담는 배열
for i in range(3): # 학생이 3명
    kList=[] # 국어 점수를 담는 배열 
    for j in range(2): # 중간고사, 기말고사
        kList.append(random.randint(0,100)) # 점수는 0~100 랜덤 
                                            # randint 를 사용하여 마지막 숫자를 포함한다.
    eList=[] # 영어 점수
    for j in range(2):
        eList.append(random.randint(0,100))
    mList=[] # 수학 점수
    for j in range(2):
        mList.append(random.randint(0,100))
        
    student=np.array( [ kList,eList,mList ] ) # 학생 한명이 맞은 국어,영어, 수학 점수
    studentList.append(student) # 학생배열에 추가 
print(studentList)
 

 

 

✔️ 실습 1

 

➡️ 이렇게 출력하기 !!

단, 점수는 0~100점 랜덤으로 저장해주세요!~~

## 파이썬 어플의 경우 "가독성", 코테의 경우 "성능"(1중, 최대 2중 for문까지만 허용!)

 

import random

total=0
studentList=[]

for i in range(3):
    kList=[] # 이게 과목
    
    for j in range(2): # 국어에 대한 중간 기말 
        score=random.randint(0,100)
        kList.append(score)
        if j==0:
            print('%d번 학생의 중간고사 국어 점수는 %d점 입니다.' %(i+1,score))
        elif j==1:
            print('%d번 학생의 기말고사 국어 점수는 %d점 입니다.' %(i+1,score))
        total = sum(kList)

    eList=[]
    for j in range(2): # 영어에 대한 중간 기말
        score=random.randint(0,100)
        eList.append(score)
        if j==0:
            print('%d번 학생의 중간고사 영어 점수는 %d점 입니다.' %(i+1,score))
        elif j==1:
            print('%d번 학생의 기말고사 영어 점수는 %d점 입니다.' %(i+1,score))

    mList=[]
    for j in range(2): # 수학에 대한 중간 기말
        score=random.randint(0,100)
        mList.append(score)
        if j==0:
            print('%d번 학생의 중간고사 수학 점수는 %d점 입니다.' %(i+1,score))
        elif j==1:
            print('%d번 학생의 기말고사 수학 점수는 %d점 입니다.' %(i+1,score))

    print()
    student=np.array( [kList,eList,mList] )
    studentList.append(student)
    
print(studentList)


# 이슈
##j 에겐 2 가 없어서 인덱스 오류
##j 는 과목이 아니라 중간인지 기말인지 였다
##j 0,1 나눠서 0이라면 중간 1이라면 기말
 

 

✅ 다른 풀이

 

studentList=[]
for i in range(3):
    kList=[]
    for j in range(2):
        kList.append(random.randint(0,100))
    eList=[]
    for j in range(2):
        eList.append(random.randint(0,100))
    mList=[]
    for j in range(2):
        mList.append(random.randint(0,100))
        
    student=np.array( [ kList,eList,mList ] )
    studentList.append(student)
print(studentList)

print()
print()
print()

studentNum=0 # 학생 1, 학생 2, 학생 3
testNameList=['중간고사','기말고사'] # 시험 이름
subjectNameList=['국어','영어','수학'] # 과목 이름

for student in studentList:
    studentNum+=1 # 학생 1,2,3
    
    subjectNum=-1 # 과목은 하나씩 줄어든다
    for subject in student: # 학생이 과목에 대하여 
        subjectNum+=1 # 과목에 대한 num 
        testNum=-1 # 중간 , 기말 치뤘으면 하나 빼기 
        for test in subject:
            testNum+=1 # 중간고사 +1 , 기말고사 +1
            print(str(studentNum)+'번 학생의 '+testNameList[testNum]+' '+subjectNameList[subjectNum]+' 점수는 '+str(test)+'점 입니다.')
                    학생 번호                 시험이름[중간인지,기말인지]    과목 이름[국어인지,영어,수학인지]        점수 !
 

 

 

728x90
반응형

'Python > 개념정리' 카테고리의 다른 글

파이썬 numpy [ 실습 3 ]  (0) 2024.05.14
파이썬 numpy [ 실습 2 ]  (0) 2024.05.14
파이썬 numpy 패키지  (0) 2024.05.14
파이썬 막대그래프 [실습]  (0) 2024.05.14
파이썬 막대그래프  (0) 2024.05.14