문제
국어80점, 수학 75점, 영어 55점, 사회 90점인 학생의 평균점수를 구하는 코드를 작성하세요!!!
문제 접근 방법
- 여러 스타일로 하면서,,,문제를 접근하려고 함!!!
- 문제 상황을 표현 : 변수 + 자료형++++ 관계!!!!
- 기능적인 부분이 필요하다면 : 직접 만들거나,,,있는거 가져다 사용하면 됨!!!!
⇒ 파이썬의 잡다한 기능을 알면 편하다!!!
풀이
- 방법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) - 스스로 하면서 본인의 기준을 잡아야함!!! ⇒ 본인 스타일로 정리하는 것이 필요하다
'파이썬 > exercise' 카테고리의 다른 글
| [파이썬] exercise 06_소수 구하는 문제 (7) | 2025.08.09 |
|---|---|
| [파이썬] exercise 05 반복문 패턴 (0) | 2025.08.09 |
| [파이썬] exercise 04 사각형 외내부 판정 (0) | 2025.08.05 |
| [파이썬] exercise 03 리스트 필터링 (1) | 2025.08.05 |
| [파이썬] exercise 02 리스트 변경 (0) | 2025.08.05 |