728x90
반응형
문제
10명의 학생에 대해 학생별로 여섯개 과목 성적을 사용자로부터 입력받고 평균이 70아래면 '평균아래입니다'메세지 출력하기. 점수 입려값이 음수나 100보다 큰값을 입력하면 오류메세지 출력. |
def check(lst): # 값이 음수이거나 100점이 넘는지 체크하는 함수
rtn = True # 리턴 할 변수 선언
for i in range(len(lst)): # 리스트 요소수 만큼 반복
if lst[i] < 0 or lst[i] > 100: # 요소값이 음수 이거나 100 넘는지 확인
rtn = False # 리턴값을 False로 함
break # for 반복문 종료. 이미 False가 되므로
return rtn # 결과를 리턴
def sum(lst): # 합계 함수
rtn = 0
for n in lst: # 요소수만큼 반복
rtn += n # 요소수들을 더함
return rtn # 합계 리턴
for i in range(10): # 6명 입력. 반복
while True: # 입력 점수가 음수이거나 100이 넘으면 다시 입력 받기 위한 반복. 무한 반복
tmp = input(f"[{i+1}/6]성적을 입력 하세요(예:80,90,79,95,87,92) : ") # 한 학생의 6개 점수를 모두 입력 받음
tmp_lst = list(map(int, tmp.split(','))) # ,로 각 점수 분리하고(split), map() 함수로 정수로 변환하고, 이 결과를 리스트로 만듬
if check(tmp_lst) == False: # 음수 및 100점 넘는지 확인
print('점수 입려값이 음수나 100보다 큰값이 있습니다. 다시 입력하세요!')
else: # 음수가 아니고 100이 넘지 않으면
break # while 반복문 빠져나감. 정상적인 점수들이므로
d_sum = sum(tmp_lst) # sum() 함수로 함계 계산한 리턴 받음
d_avg = d_sum / len(tmp_lst) # 평균 계산
if d_avg < 70: # 평균이 70보다 작으면
print(f"{d_avg:4.1f} 평균아래입니다!")
else: # 평균이 70 이상이면
print(f"평균은 {d_avg:4.1f}입니다!")
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 숫자 입력 받아서 소수인지 체크 (0) | 2024.05.14 |
---|---|
[파이썬] 문제 : 시작,끝 수 입력 받아 합계 구하기 (0) | 2024.05.14 |
[파이썬] 문제 : 시험 점수를 학점 주기 (if, elif, else 사용) (0) | 2024.05.13 |
[파이썬] 문제 : 입력 받은 돈을 동전으로 바꾸기 (0) | 2024.05.13 |
[파이썬] 문제 : 난수 정수의 사칙연산 (0) | 2024.05.12 |
댓글