본문 바로가기
Deep Learning/밑바닥부터 시작하는 데이터 과학

[python]학점계산기(exam_grader)_by.Teamlab

by Steve-Lee 2019. 1. 8.
Teamlab 오픈소스를 활용해서 Python을 공부하고 있다.
문제 해결!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# 총 과목 수를 Console를 통해 받기
# 첫 번째 수정
def get_number_of_subjects():
 
    # """
    # Input:
    #     - None
    # Output:
    #     - number_of_subjects: Integer Type의 총 과목 수
    # Examples(python shell):
    #     >>> import exam_grader as eg
    #     >>> eg.get_number_of_subjects()
    #   과목수를 입력하세요: 10
    #   10
    # """
    #
    # ===Modify codes below=================
    number_of_subjects = None
    print("과목 수를 입력하세요: ")
    input_number = int(input()) # 과목의 수를 정수형태로 입력받는다
    number_of_subjects = input_number
    # ======================================
    print("과목수는: ", number_of_subjects)
    return number_of_subjects
 
 
# Help Funtion - 수정하지 말 것
def sum_of_scores(number_of_subjects):
 
    total_score = 0
    for i in range(number_of_subjects):
        message = str(i + 1+ "번째 과목의 점수를 입력하세요 : "
        score = int(input(message))
        total_score = total_score + score
    return total_score
 
 
# Help Funtion - 수정하지 말 것
def print_exam_grader(average_score):
    grade = 'F'
    if average_score >= 90.0:
        grade = 'A'
    elif average_score >= 80.0:
        grade = 'B'
    elif average_score >= 70.0:
        grade = 'C'
    elif average_score >= 60.0:
        grade = 'D'
    else:
        grade = 'F'
    print(grade)
 
# get_average_score함수 생성하기
def get_average_score(total_score, number_of_subjects):
    result = None
    total_score = total_score
    number_of_subjects = number_of_subjects
    result = float(total_score)/number_of_subjects
    return result
 
 
def main():
    print("Start of Exam Grader Program")
    print("============================")
 
    number_of_subjects = get_number_of_subjects()
    total_score = sum_of_scores(number_of_subjects)
    average_score = get_average_score(
        total_score=total_score, number_of_subjects=number_of_subjects)
    print_exam_grader(average_score)
    print("===========================")
    print("End of Exam Grader Program")
 
if __name__ == '__main__':
    main()
 
cs

질문이 있으시면 댓글로 남겨주세요!



'''

2019년 2월 18일 월요일 새벽....

생각보다 많은 분들이 본 포스팅을 찾아주셔서 정말 감사하다는 말씀 드리고 싶습니다.
부족한 코딩실력인데 많은 참고 해주셔서 감사할 따름이네요
...

시간이 지나 돌아보니 코드가 조금 지저분 한 것 같고,
댓글을 달아주신 ㅎㅎ님의 피드백에 대한 답을 드리고자 다시한번 짜봤습니다

'''


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python
# coding: utf-8
 
# ## 학점계산기 문제에 질문을 받고 코드를 다시 짜봅니다
 
# * from scratch
 
# In[3]:
 
 
# 1. get_number_of_subject: 과목수를 입력받아 return하는 함수
def get_number_of_subject():
    number_of_subjects = int(input("수강한 과목의 수를 입력해주세요: "))
    return number_of_subjects
 
# 2. Help Function # sum_of_score: 전체 성적을 더해 return하는 함수
def sum_of_scores(number_of_subjects):
 
    total_score = 0
    for i in range(number_of_subjects):
        message = str(i+1+ "번째 과목의 점수를 입력하세요: "
        score = int(input(message))
        total_score = total_score + score
    return total_score
 
# 3. Help Function # print_exam_grader(): 학점의 등급을 출력한다
def print_exam_grader(average_score):
    grade = 'F'
    if average_score >=90.0:
        grade = 'A'
    elif average_score >= 80.0:
        grade = 'B'
    elif average_score >= 70.0:
        grade = 'C'
    elif average_score >= 70.0:
        grade = 'D'
    else:
        grade ='F'
    print(grade)
 
# 4. get_average_score: total_score를 과목수로 나눠 평균 점수를 return한다
'''
def get_average_score(total_score, number_of_subjects):
    total_score_input = total_score
    number_of_subjects_input = number_of_subjects
    result = float(total_score_input) / number_of_subjects_input
    return result
    # ㅎㅎ님께서 말씀하신 것처럼 따로 변수를 할당하는 것 보다는
'''
def get_average_score(total_score, number_of_subjects):
    result = float(total_score) / number_of_subjects # 매개변수를 바로 받아오는 것이 더 깔끔하다
    return result
 
 
# 5. 메인 함수를 실행해본다
def main():
    print("Start of Exam Grader Program")
    print("============================")
 
    number_of_subjects = get_number_of_subject()
    total_score = sum_of_scores(number_of_subjects)
    average_score = get_average_score(total_score, number_of_subjects)
    print_exam_grader(average_score)
    print("=============================")
    print("End of Exam Grader Program")
 
if __name__ == '__main__':
    main()
 

cs

지난 코드보다 조금 더 깔끔한(?) 코드입니다
문제에 대한 답을 보기에 앞서서
문제를 어떻게 해석할지 고민해보고

어떤 함수와 변수를 사용해야할 지 한번 생각해보고 접근해보신다면
이해하는데 더 많은 도움이 될 것이라고 생각합니다 이상 Hessey였습니다


댓글