ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 231115 온라인 강의 듣는날
    패스트캠퍼스 부트캠프 학습일지 2023. 11. 13. 22:58
    # 테스트용 데이터
    test_students = [
        {'name': 'Alice', 'grades': [80, 90, 75]},
        {'name': 'Bob', 'grades': [92, 88, 94]},
        {'name': 'Charlie', 'grades': [85, 78, 92]},
        {'name': 'David', 'grades': [95, 89, 88]},
    ]
    
    # 최댓값 담을 변수
    max_score = 0
    
    # 과목별 성적 누계 리스트
    scores = [0] * 3
    
    # 평균 성적 계산
    
    print(test_students)
    name_list = []
    for key, student in enumerate(test_students):
        # 평균 구해서, key average로 추가해서 넣기
        student_score_average = sum(student['grades']) / len(student['grades'])
        test_students[key]['average'] = student_score_average
        # 평균 최대점 구하고 가장 점수 높은 학생 이름을 max_student_name에 저장
        if student_score_average > max_score:
            max_score = student_score_average
            max_student_name = student['name']
        # 과목별 점수 누적
        for score_key, score in enumerate(student['grades']):
            scores[score_key] += score
    
    print(test_students)
    print(f'평균성적이 가장 높은 학생의 이름은 {max_student_name}입니다.')
    print(f'과목별 총점은 {scores}입니다.')
    avg_scores = list(map(lambda i: i / len(test_students), scores))
    print(f'과목별 평균은 {avg_scores}입니다.')
    

     

    이게 내가 짠 코드인데

    test_students = [
        {'name': 'Alice', 'grades': [80, 90, 75]},
        {'name': 'Bob', 'grades': [92, 88, 94]},
        {'name': 'Charlie', 'grades': [85, 78, 92]},
        {'name': 'David', 'grades': [95, 89, 88]},
    ]
    
    # Calculate average and find student with the highest average
    max_student = max(test_students, key=lambda student: sum(student['grades']) / len(student['grades']))
    
    # Calculate total scores for each subject
    subject_scores = [sum(score) for score in zip(*(student['grades'] for student in test_students))]
    
    # Calculate average scores for each subject
    avg_subject_scores = [total / len(test_students) for total in subject_scores]
    
    print(f'평균성적이 가장 높은 학생의 이름은 {max_student["name"]}입니다.')
    print(f'과목별 총점은 {subject_scores}입니다.')
    print(f'과목별 평균은 {avg_subject_scores}입니다.')

     

    gpt는 이러한 프로그램으로 개선했다고 주장한다.

    일단 결이 좀 다르긴하다, 내 코드는 각 학생의 average를 test_student 의 각 딕셔너리에 집어넣는 부분이 있고 gpt의 코드에는 그 부분이 생략되어있다. 따라서 완전히 같은 코드라고 볼 수는 없다.

     

    그리고 문제의 이부분인데..

    # Calculate total scores for each subject
    subject_scores = [sum(score) for score in zip(*(student['grades'] for student in test_students))]
    

     

    chat gpt에게 일단 설명을 부탁했다.

     

    https://chat.openai.com/share/8f0b807d-eeb8-4ca6-9dca-714ff7865982

     

    ChatGPT

    A conversational AI system that listens, learns, and challenges

    chat.openai.com

    이건 그 대화내용, 양이 많다.

     

    행/렬 전환문제는 코테에서도 단골 소재긴했다. 이걸 이중 for문으로 길이 len으로 다 불러가면서 하려면 고통인데,

    packing, unpacking으로 해결하니 한결 간단해지는 느낌, 여전히 희미하게 이해한 것 같지만 써먹다보면 좀 더 잘 알게되겠지.. 화이팅!!

    '패스트캠퍼스 부트캠프 학습일지' 카테고리의 다른 글

    231130 sql 시작!  (1) 2023.12.08
    231116 python 계속  (1) 2023.11.13
    231114 파이썬 문법 종료!  (1) 2023.11.13
    231113 python 계속  (0) 2023.11.13
    231109~10 파이썬 계속!  (0) 2023.11.10
Designed by Tistory.