데이터는 score.txt에서 읽어오도록 하였다.
score.txt가 없을시 오류가 날 수 있음
기능
1 입력 : 이름 국어성적 영어성적 수학성적을 입력(총점과 평균은 계산해서 입력됨)
2 전체출력 : 모든 데이터 출력
3 이름 검색 : 이름을 입력해서 같은 이름인 사람의 점수 출력
4 평균 검색 : 점수를 입력해서 평균점수가 입력받은 점수보다 높은 사람 출력
5 수정 : 이름을 입력받으면 해당 이름과 같은 사람의 국어, 영어, 수학의 점수를 다시 입력받는다.
6 삭제 : 이름을 입력받아 같은 사람의 데이터를 삭제
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
def read_list():
score_list = []
with open("score.txt","r") as file:
line = None
while line != '':
line = file.readline()
one_list = line.split("\t")
one_list[-1] = one_list[-1][:-1]
one_list[1:] = list(map(float,one_list[1:]))
score_list.append(one_list)
score_list = score_list[:-1]
return score_list
def write_list(score_list):
with open("score.txt","w") as file:
for i in score_list:
file.write(i[0])
file.write("\t")
file.write(str(i[1]))
file.write("\t")
file.write(str(i[2]))
file.write("\t")
file.write(str(i[3]))
file.write("\t")
file.write(str(i[4]))
file.write("\t")
file.write(str(i[5]))
file.write("\n")
def print_list(list):
for i in list:
print(i,end="\t")
print()
def insert():
name = input("이름:")
korea = float(input("국어:"))
english = float(input("영어:"))
math = float(input("수학:"))
with open("score.txt","a") as file:
file.write(name)
file.write("\t")
file.write(str(korea))
file.write("\t")
file.write(str(english))
file.write("\t")
file.write(str(math))
file.write("\t")
file.write(str(korea+english+math))
file.write("\t")
file.write(str((korea+english+math)/3))
file.write("\n")
def read_all():
score_list = read_list()
print("이름\t국어\t영어\t수학\t총점\t평균")
for i in score_list:
print_list(i)
def read_name():
name = input("이름:")
score_list = read_list()
print("이름\t국어\t영어\t수학\t총점\t평균")
for i in score_list:
if(i[0]==name):
print_list(i)
def read_score():
score = int(input("점수"))
score_list = read_list()
score_list = sorted(score_list, key=lambda x: x[-1], reverse=True)
print("이름\t국어\t영어\t수학\t총점\t평균")
for i in score_list:
if(i[-1]>=score):
print_list(i)
def list_del():
name = input("이름")
score_list = read_list()
num=-1;
for i in range(len(score_list)):
if(score_list[i][0] == name):
num = i
break
if(num!=-1):
del (score_list[num])
write_list(score_list)
def list_modify():
name = input("이름")
score_list = read_list()
num=-1;
for i in range(len(score_list)):
if(score_list[i][0] == name):
num = i
break
if(num!=-1):
korea = float(input("국어:"))
english = float(input("영어:"))
math = float(input("수학:"))
score_list[num][1] = korea
score_list[num][2] = english
score_list[num][3] = math
score_list[num][4] = (korea+english+math)
score_list[num][5] = (korea+english+math)/3
write_list(score_list)
def score_data():
while True:
select = int(input("기능선택(1.입력 2.전체출력 3.이름검색 4.평균검색 5.수정 6.삭제 (0.끝))"))
if(select == 1):
insert()
elif(select == 2):
read_all()
elif(select == 3):
read_name()
elif(select == 4):
read_score()
elif(select == 5):
list_modify()
elif(select == 6):
list_del()
else:
break
score_data()
|
cs |
'python' 카테고리의 다른 글
[Python] GIL (Global Interpreter Lock) (0) | 2022.09.15 |
---|---|
[python] 성적 처리하기2 - by class (0) | 2020.07.22 |
[python] 반복문으로 별모양 그리기2 (0) | 2020.07.22 |
[python] 반복문으로 별모양 출력하기 (0) | 2020.07.22 |
[python] random으로 로또 번호 추첨하기 (0) | 2020.07.22 |
댓글