아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
지혜로운벌잡이273
지혜로운벌잡이27321.03.28

파이썬 이거 코드를 어떻게 짜야하는건가요

파이썬 통해 성적관리프로그램 작성중입니다.

main()을 활용하고 파일을 읽고 쓰고 저장하는 처리를 해야하는데 아무리 생각해도 파일 읽고 쓰는 과정을 어떻게 할지 모르겠네요..

어떻게하면 될까요?

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • 급히 짠거라 테스트가 부족함을 이해해주시고, 코드를 붙여드립니다.

    main 함수에서는 3가지 함수를 실행해야 하네요.

    readList(), calList(), printList() 3가지 입니다.

    각 함수의 입력값과 리턴값은 다음과 같습니다. (문제지와 동일)

    readList

    - 입력값 : 없음

    - 출력값 : 학번, 이름, 국어점수, 영어점수, 수학점수

    calList

    - 입력값 : 학번, 이름, 국어점수, 영어점수, 수학점수

    - 출력값 : 총점, 평균, 학점

    printList

    - 입력값 : 학번, 이름, 국어점수, 영어점수, 수학점수, 총점, 평균, 학점

    def main(): print("프로그램을 종료하려면 학번에 '0'을 입력하시오") # 학생들의 정보를 저장할 리스트 student_list = list() # 5명의 정보를 입력받음 - 학번, 이름, 국어, 영어, 수학 for i in range(1): student_number, name, lang_score, eng_score, math_score = readList() total_score, avg_score, grade = calList(student_number, name, lang_score, eng_score, math_score) student = [student_number, name, lang_score, eng_score, math_score, total_score, avg_score, grade] list.append(student) print("="*30) print("번호\t이름\t국어\t영어\t수학\t총점\t평균\t학점") for student in student_list: printList(student[0], student[1], student[2], student[3], student[4]) print("="*30) def readList(): student_number = input("학번을 입력하시오 : \n") if student_number == "0": exit() name = input("이름을 입력하시오 : \n") lang_score = input("국어점수를 입력하시오 : \n") eng_score = input("영어점수를 입력하시오 : \n") math_score = input("수학점수를 입력하시오 : \n") return student_number, name, lang_score, eng_score, math_score def calList(student_number, name, lang_score, eng_score, math_score): total_score = lang_score + eng_score + math_score avg_score = total_score / 3 grade = "F" if avg_score >= 90: grade = "A" elif avg_score >= 80: grade = "B" elif avg_score >= 70: grade = "C" elif avg_score >= 60: grade = "D" return total_score, avg_score, grade def printList(student_number, name, lang_score, eng_score, math_score): print(student_number+"\t"+name+"\t"+lang_score+"\t"+eng_score+"\t"+math_score) main()

    마지막 출력에 대한 포맷은 질의자분께서 손 좀 보셔서 이쁘게 맞추는게 좋을 듯 합니다.


  • 프로그래밍을 하려고 한다면 당연히 프로그래밍 언어를 배워야하기는 합니다.

    컴퓨터 공학과로 진학하기 위해서는 프로그래밍을 할줄 알아야하는 것은 아닙니다.

    많은 컴퓨터 공학과 학생들이 프로그래밍 언어를 1학년때 처음 배우는 경우가 많이 있습니다.

    처음 배운다면 파이썬으로 시작하는 것을 추천합니다.

    다른 언어보다 상대적으로 쉽기 때문에 좋습니다.

    "파이썬 정복", "점프 투 파이썬(c언어도 있음)" 등의 책으로 공부해보는 것도 좋을 것 같습니다.


  • 주어진 문제를 구현한 소스입니다.

    파일을 읽고 쓰고 저장하는 부분은 문제에는 없어서 생략하였습니다.

    def readList(): hakbunL = [] nameL = [] korL = [] engL = [] matL = [] print('프로그램을 종료하려면 0번을 입력하세요') for x in range(5): hakbun = input('학번을 입력하세요 : ') if int(hakbun) == 0: break name = input("이름 : ") kor = int(input("국어 점수 : ")) eng = int(input("영어 점수 : ")) mat = int(input("수학 점수 : ")) hakbunL.append(hakbun) nameL.append(name) korL.append(kor) engL.append(eng) matL.append(mat) return hakbunL, nameL, korL, engL, matL def callList(hakbunL, nameL, korL, engL, matL): totL = [] avgL = [] hakjumL = [] for x in range(len(hakbunL)): tot = korL[x] + engL[x] + matL[x] avg = tot /3 if avg >= 90: hakjum = 'A' elif avg >= 80: hakjum = 'B' elif avg >= 70: hakjum = 'C' elif avg >= 60: hakjum = 'D' else: hakjum = 'F' totL.append(tot) avgL.append(avg) hakjumL.append(hakjum) return totL, avgL, hakjumL def printlist(hakbunL, nameL, korL, engL, matL, totL, avgL, hakjumL): print('==================================================') print('번호 이름 국어 영어 수학 총점 평균 학점') print('==================================================') for x in range(len(hakbunL)): print (hakbunL[x], nameL[x], korL[x], engL[x], matL[x], totL[x], avgL[x], hakjumL[x]) hakbunL, nameL, korL, engL, matL = readList() totL, avgL, hakjumL = callList(hakbunL, nameL, korL, engL, matL) printlist(hakbunL, nameL, korL, engL, matL, totL, avgL, hakjumL)