YouTube 나도코딩님의 동영상을 보면서 공부한 내용입니다.
부족한 내용이나 잘못된 내용은 댓글남겨주시면 감사하겠습니다!
출처 : https://www.youtube.com/channel/UC7iAOLiALt2rtMVAWWl4pnw
Quiz)
- 출석 10점
- 퀴즈1 10
- 퀴즈2 10
- 중간고사 20
- 기말고사 30
- 프로젝트 20
------------------------
- 총합 100
최종성적 검토하다가 퀴즈2문제에 오류가 발생하여 모두 만점 처리.
현재까지 작성된 최종성적 데이터를 기준으로 아래와 같이 수정.
1. 퀴즈2 점수를 10으로 수정
2. H열에 총점(SUM 이용), I열에 성적 정보 추가
- 총점 90이상 A, 80이상 B, 70이상 C, 나머지 D
3. 출석이 5미만인 학생은 총점과 상관없이 F
최종파일명 : scores.xlsx
[현재까지 작성된 최종 성적 데이터]
학번, 출석, 퀴즈1, 퀴즈2, 중간고사, 기말고사, 프로젝트
1,10,8,5,14,26,12
2,7,3,7,15,24,18
3,9,5,8,8,12,4
4,7,8,7,17,21,18
5,7,8,7,16,25,15
6,3,5,8,8,17,0
7,4,9,10,16,27,18
8,6,6,6,15,19,17
9,10,10,9,19,30,19
10,9,8,8,20,25,20
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
#현재까지 작성된 최종 성적 데이터를 넣기
ws.append(("학번", "출석", "퀴즈1", "퀴즈2", "중간고사", "기말고사", "프로젝트")) # 첫행
scores=[
(1,10,8,5,14,26,12),
(2,7,3,7,15,24,18),
(3,9,5,8,8,12,4),
(4,7,8,7,17,21,18),
(5,7,8,7,16,25,15),
(6,3,5,8,8,17,0),
(7,4,9,10,16,27,18),
(8,6,6,6,15,19,17),
(9,10,10,9,19,30,19),
(10,9,8,8,20,25,20)
] # 값을 변수에 넣기
for s in scores: #기존 성적 데이터 넣기
ws.append(s)
wb.save("scores.xlsx")

# 1. 퀴즈2 모두 10점으로 변경
- enumerate() :리스트의 원소의에 순서값을 부여하는 함수
for idx, cell in enumerate(ws["D"]): #D : 퀴즈2
if idx == 0: #제목인 경우 스킵
continue
cell.value = 10

# 2. H열에 총점(SUM 이용), I열에 성적 정보 추가
ws["H1"] = "총점"
ws["I1"] = "성적"

# 총점구하기
# 총점
# a b c d e f g h i
# 1 2 3 4 5 6 7 8 9
for idx, score in enumerate(scores, start=2): #start=2: 첫번째줄은 제목이라 두번째줄부터 값입력
sum_val = sum(score[1:]) - score[3] + 10 # 총점 : 인덱스 0은 학번이라 제와하고 기존의 퀴즈2값은 빼고 10을 더함
ws.cell(row=idx, column=8).value = "=SUM(B{}:G{})".format(idx, idx)
# SUM(B2:G2)
# SUM(B3:G3)....
# 위에서 선언한 score변수는 업데이트가 안되었으므로 기존 값을 빼고 10을 더함
# idx로 값을 더해줄때는 셀에 있는 값이라 업데이트 된 값들이라 따로 처리 X

# 성적구하기
# - 총점 90이상 A, 80이상 B, 70이상 C, 나머지 D
grade = None # 성적
if sum_val >= 90:
grade = "A"
elif sum_val >= 80:
grade = "B"
elif sum_val >= 70:
grade = "C"
else:
grade = "D"
ws.cell(row=idx, column=9).value = grade # I열에 성적 정보

# 3. 출석이 5미만인 학생은 총점과 상관없이 F
# 3. 출석이 5미만인 학생은 총점과 상관없이 F
if score[1] < 5:
grade = "F"

# 17_quiz.py
# Quiz)
# - 출석 10점
# - 퀴즈1 10
# - 퀴즈2 10
# - 중간고사 20
# - 기말고사 30
# - 프로젝트 20
# ------------------------
# - 총합 100
#
# 최종성적 검토하다가 퀴즈2문제에 오류가 발생하여 모두 만점 처리.
# 현재까지 작성된 최종성적 데이터를 기준으로 아래와 같이 수정.
# 1. 퀴즈2 점수를 10으로 수정
# 2. H열에 총점(SUM 이용), I열에 성적 정보 추가
# - 총점 90이상 A, 80이상 B, 70이상 C, 나머지 D
# 3. 출석이 5미만인 학생은 총점과 상관없이 F
#
# 최종파일명 : scores.xlsx
#
# [현재까지 작성된 최종 성적 데이터]
# 학번, 출석, 퀴즈1, 퀴즈2, 중간고사, 기말고사, 프로젝트
# 1,10,8,5,14,26,12
# 2,7,3,7,15,24,18
# 3,9,5,8,8,12,4
# 4,7,8,7,17,21,18
# 5,7,8,7,16,25,15
# 6,3,5,8,8,17,0
# 7,4,9,10,16,27,18
# 8,6,6,6,15,19,17
# 9,10,10,9,19,30,19
# 10,9,8,8,20,25,20
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
#현재까지 작성된 최종 성적 데이터를 넣기
ws.append(("학번", "출석", "퀴즈1", "퀴즈2", "중간고사", "기말고사", "프로젝트")) # 첫행
scores=[
(1,10,8,5,14,26,12),
(2,7,3,7,15,24,18),
(3,9,5,8,8,12,4),
(4,7,8,7,17,21,18),
(5,7,8,7,16,25,15),
(6,3,5,8,8,17,0),
(7,4,9,10,16,27,18),
(8,6,6,6,15,19,17),
(9,10,10,9,19,30,19),
(10,9,8,8,20,25,20)
] # 값을 변수에 넣기
for s in scores: #기존 성적 데이터 넣기
ws.append(s)
# 데이터가공
# 1. 퀴즈2 모두 10점으로 변경
for idx, cell in enumerate(ws["D"]): #D : 퀴즈2
if idx == 0: #제목인 경우 스킵
continue
cell.value = 10
# 2. H열에 총점(SUM 이용), I열에 성적 정보 추가
ws["H1"] = "총점"
ws["I1"] = "성적"
# 총점
# a b c d e f g h i
# 1 2 3 4 5 6 7 8 9
for idx, score in enumerate(scores, start=2): #start=2: 첫번째줄은 제목이라 두번째줄부터 값입력
sum_val = sum(score[1:]) - score[3] + 10 # 총점 : 인덱스 0은 학번이라 제와하고 기존의 퀴즈2값은 빼고 10을 더함
ws.cell(row=idx, column=8).value = "=SUM(B{}:G{})".format(idx, idx)
# SUM(B2:G2)
# SUM(B3:G3)....
# 위에서 선언한 score변수는 업데이트가 안되었으므로 기존 값을 빼고 10을 더함
# idx로 값을 더해줄때는 셀에 있는 값이라 업데이트 된 값들이라 따로 처리 X
# - 총점 90이상 A, 80이상 B, 70이상 C, 나머지 D
grade = None # 성적
if sum_val >= 90:
grade = "A"
elif sum_val >= 80:
grade = "B"
elif sum_val >= 70:
grade = "C"
else:
grade = "D"
# 3. 출석이 5미만인 학생은 총점과 상관없이 F
if score[1] < 5:
grade = "F"
ws.cell(row=idx, column=9).value = grade # I열에 성적 정보
wb.save("scores.xlsx")'Tools > RPA' 카테고리의 다른 글
| [RPA] 데스크탑UI - 스크린, 이미지처리, 이미지처리(속도개선), 이미지처리(대기) (0) | 2021.07.29 |
|---|---|
| [RPA] 데스크탑UI - 환경설정, 마우스이동, 마우스액션, 마우스정보 (0) | 2021.07.29 |
| [RPA] 엑셀 - 수식, 데이터수식, 병합, 병합해제, 이미지 (0) | 2021.07.28 |
| [RPA] 엑셀 - 차트, 셀스타일 (0) | 2021.07.28 |
| [RPA] 엑셀 - 삽입, 삭제, 이동 (0) | 2021.07.27 |