[파이썬 원격 강의 과제]220915 #5 조건문, 반복문

2022. 9. 21. 11:17스파르타코딩클럽[AI트랙 3기]/파이썬 과제

>내코드

def get_grade(score):
    if score >90 :
        print("A")
    elif score >80 :
        print("B")
    elif score >70 :
        print("C")
    else:
        print("F")

score=int(input())
grade = get_grade(score)
print(grade) #A~F

▶성적에따른 등급은 제대로 나오는데 밑에 None이 나온다. 이유가 뭘까... 

 

>정답코드

def get_grade(score):
    if score > 90:
        return 'A'
    elif score > 80:
        return 'B'
    elif score > 70:
        return 'C'
    else:
        return 'F'

score = int(input())
grade = get_grade(score)
print(grade) # A ~ F

▶내 코드와 차이점은 return으로 받아줬다는것!! 이유가 무엇이냐! 

 

>내가짠 코드

n=input()

while n < "5" or n == "exit":
    if n == int():
        print(n*2)
    else :
        print(f"입력한 문자는 {n}입니다.")

▶무한 루프 ;;;;

>정답 코드

num_count = 0           # 숫자 입력 횟수

while num_count < 5:    # 숫자 입력 5회까지만 반복
    user = input()

    if user == 'exit':
        quit()

    elif user.isdigit() == True: # 문자열이 숫자로만 이루어졌다면
        num_count += 1           # 숫자 입력 횟수 추가
        print(int(user) * 2)

    else:
        print(f"입력한 문자는 {user}입니다.")

▶isdigit()함수 사용. user.isdigit() == True: 하면 문자열이 숫자로만 이루어졌다는 뜻이고, 그럴경우 num_count가 1올라감. 그리고 숫자 곱한 것 추가 함.

>내가짠 코드

def get_filter_user(users):
    list(filter(lambda x:(x[5]+x[7]+x[9]+x[11]))/4>=70,users)
    return filter_users

filter_users = get_filter_user(users)
pprint(filter_users)

>정답 코드

from pprint import pprint

users = [
    {"name": "Ronald", "age": 30, "math_score": 93, "science_score": 65, "english_score": 93, "social_score": 92},
    {"name": "Amelia", "age": 24, "math_score": 88, "science_score": 52, "english_score": 78, "social_score": 91},
    {"name": "Nathaniel", "age": 28, "math_score": 48, "science_score": 40, "english_score": 49, "social_score": 91},
    {"name": "Sally", "age": 29, "math_score": 100, "science_score": 69, "english_score": 67, "social_score": 82},
    {"name": "Alexander", "age": 30, "math_score": 69, "science_score": 52, "english_score": 98, "social_score": 44},
    {"name": "Madge", "age": 22, "math_score": 52, "science_score": 63, "english_score": 54, "social_score": 47},
    {"name": "Trevor", "age": 23, "math_score": 89, "science_score": 88, "english_score": 69, "social_score": 93},
    {"name": "Andre", "age": 23, "math_score": 50, "science_score": 56, "english_score": 99, "social_score": 54},
    {"name": "Rodney", "age": 16, "math_score": 66, "science_score": 55, "english_score": 58, "social_score": 43},
    {"name": "Raymond", "age": 26, "math_score": 49, "science_score": 55, "english_score": 95, "social_score": 82},
    {"name": "Scott", "age": 15, "math_score": 85, "science_score": 92, "english_score": 56, "social_score": 85},
    {"name": "Jeanette", "age": 28, "math_score": 48, "science_score": 65, "english_score": 77, "social_score": 94},
    {"name": "Sallie", "age": 25, "math_score": 42, "science_score": 72, "english_score": 95, "social_score": 44},
    {"name": "Richard", "age": 21, "math_score": 71, "science_score": 95, "english_score": 61, "social_score": 59},
    {"name": "Callie", "age": 15, "math_score": 98, "science_score": 50, "english_score": 100, "social_score": 74},
]
def get_filter_user(users):

    filter_users = []

    for user in users:
        average = (user["math_score"] + user["science_score"] + user["english_score"] + user["social_score"])/4 
        if average >= 70:                   # 평균이 70점 이상이라면
            result = {}
            result["age"] = user["age"]     # 빈 딕셔너리(result)에 새로운 key : value 값 추가 (나이, 이름)
            result["name"] = user["name"]
            filter_users.append(result)     # 최종 리턴할 변수에 값 추가

    return filter_users

filter_users = get_filter_user(users)
pprint(filter_users)