본문 바로가기

배운다/파이썬

[파이썬] 평균, 패스/페일 546: 반복제어문2 - 자가진단6

문제

10 이하의 과목수 n이 주어진다.

정수로 주어진 n개 과목의 점수를 입력받아서 실수 평균을 구하여 출력하고 

평균이 80점이상이면 "pass", 80점 미만이면 "fail"이라고 출력하는 프로그램을 작성하시오.

평균은 반올림하여 소수 첫째자리까지 출력한다.​

 

입력예

4

75 80 85 90

 

출력예

avg : 82.5 pass

 

풀이 1 ) 

 

sum = 0

def average():
    count = int(input())
    if count < 11:
        for n in range(count):
            global sum
            score = int(input())
            while score > 100: 
                score = int(input("100이하로입력해주세요: "))

            sum = sum+score
        
        avg = sum/count
        print("avg :", round(sum/count,1))
        
        if avg >= 80:
            print("pass")
        else:
            print("fail")

    else:
        print("1에서 10사이의 정수를 입력해주세요")

average()

 

풀이 2 )

num = int(input("num: "))
if num < 11:
    grades = input("grades: ").split(" ")
    parsed = list(map(float, grades))
    avg = round(sum(parsed)/num, 1)
    print(f"avg : {avg}")
    if avg >= 80:
        print("pass")
    else:
        print("fail")
else:
    print("Can't have 10 course!")

 

풀이 3 )

num_class = int(input(''))
grade = []

if num_class <= 10:
    
    grade = list(int(num) for num in input("").strip().split())
    grade_sum = round(sum(grade)//num_class, 2)

    if grade_sum >= 80:
        print('avg :', grade_sum)
        print('"pass"')
        
    else:
        print('avg :', grade_sum)
        print('"fail"')

else:
    None

 

풀이 4 )

def average():
    try:
        s = 0  
        n=int(input("과목의 갯수: "))
    except:
        print("1에서 10사이의 정수를 입력해주세요")
        average()
    
    

    for x in range(1,n+1):
        a=float(input("%d번째 과목 점수: "%(x)))
        s+=a


    print("avg : %.2f "%(round(s/n,1)))


    if s/n >= 80:
        print("pass")

    else:
        print("fail")

average()