본문 바로가기
파이썬/exercise

[파이썬] exercise 01 과목 평균

by nemonemonemo 2025. 8. 5.

문제

국어80점, 수학 75점, 영어 55점, 사회 90점인 학생의 평균점수를 구하는 코드를 작성하세요!!!


문제 접근 방법

  • 여러 스타일로 하면서,,,문제를 접근하려고 함!!!
    1. 문제 상황을 표현 : 변수 + 자료형++++ 관계!!!!
    1. 기능적인 부분이 필요하다면 : 직접 만들거나,,,있는거 가져다 사용하면 됨!!!!

⇒ 파이썬의 잡다한 기능을 알면 편하다!!!


풀이

  • 방법1) 꾸역꾸역하기
korean = 80
math = 75
english = 55
social = 90
# ---> 주어진 문제에 대한 표현./ 코드화!!!

# 할 일 : 4과목의 평균!!!!
# ===> 앞에서 설정한 변수들간의 관계/기능././..
avg_score = (korean + math + english + social) / 4
# ==> 관계/ 기능 ++++알고리즘!!!! ++ 예외.....복잡한 상황!!!

print(avg_score)

  • 방법2) 과목명은 필요 없네;;;;;;=> 점수만 있으면 되는데,,,
zumsu_list = [80, 75,55, 90]
sum(zumsu_list)

avg_score = sum(zumsu_list) / len(zumsu_list)
print(avg_score)

  • 방법3) sum/len /avg함수를 사용하지 못한다고 하면? → 직접 구현하면 됨!
#문제 세팅
zumsu_list = [80, 75, 55, 90]

#필요한 변수 : 누적합 처리할 변수, 카운팅 할 변수
tot = 0
cnt = 0 # 전체 과목이 몇개냐
# 초기값 세팅!----------------

# 점수 리스트를 다 돌아가면서 진행
 for i in zumsu_list:
	 #i : 리스트의 개별 원소 값 -> 개별 과목 점수
	 tot += i # tot = tot + i
	 cnt += 1 # cnt = cnt + 1
	 
#학생의 총점 + 과목수 계산
avg_score = tot/cnt
print(avg_score)

  • 참고) 이 친구가 80점 이상 받은 과목은 몇 개?
    #전체 중에서 필터링: for + if
    #큰 틀: 전체를 롤링하면서 + 필터링 + 카운팅
    zumsu_list = [80, 75, 55, 90]
    
    cnt = 0 
    
    for i in zumsu_list:
    	if i >= 80 :
    		cnt += 1
    print(cnt)
    
    #LC
    [i for i in zumsu_list if i >= 80] # 80점 이상인 것들 일단 모아
    len([i for i in zumsu_list if i >= 80]) #거기에 len 씌우면 개수 알 수 있음
    ​
  • 가변적인 입력을 받아서 해보자 : 파이썬 → input() 함수
    • 입력: 키보드
    • 기능: 키보드에 눌린 입력값을 출력
    • 출력: 눌린 키보드에 대한 “문자열”
    a = input("성적을 입력하세요")
    a
    
  • 방법1에 대한 것을 입력을 받아서 하자
    # 방법1) 꾸엮 꾸역!!!
    korean = int(input("국어 점수를 입력하세요"))
    math = int(input("수학 점수를 입력하세요"))
    english = int(input("영어 점수를 입력하세요"))
    social = int(input("사회 점수를 입력하세요"))
    # ---> 주어진 문제에 대한 표현./ 코드화!!!
    
    # 할 일 : 4과목의 평균!!!!
    # ===> 앞에서 설정한 변수들간의 관계/기능././..
    avg_score = (korean + math + english + social) / 4
    # ==> 관계/ 기능 ++++알고리즘!!!! ++ 예외.....복잡한 상황!!!
    
    print(avg_score)
    ​
  • 방법2)
    # 방법2) 과목명은 필요 없으니 리스트로 받을 때..
    #zumsu_list = [80, 75,55, 90] input으로 하려면
    zumsu_list = []
    zumsu_list.append(int(input("국어 점수를 입력하세요")))
    zumsu_list.append(int(input("수학 점수를 입력하세요")))
    zumsu_list.append(int(input("영어 점수를 입력하세요")))
    zumsu_list.append(int(input("사회 점수를 입력하세요")))
    
    avg_score = sum(zumsu_list) / len(zumsu_list)
    print(avg_score)
    ​
  • 과목이 더 늘어난다면 어떡할래
    • 고정적인 부분 + 가변적인 부분 체크해서 반복문
    subjects = ["국어","수학","영어","사회","과학","음악"]
    
    zumsu_list=[]
    
    for sub in subjects:
    	txt = sub + "점수 입력 :"
    	zumsu_list.append(int(input(txt)))
    	
    #평균 계산
    avg_score = sum(zumsu_list) / len(zumsu_list)
    print(avg_score)
    
  • 스스로 하면서 본인의 기준을 잡아야함!!! ⇒ 본인 스타일로 정리하는 것이 필요하다