-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMission4-1.py
More file actions
141 lines (113 loc) · 5.36 KB
/
Copy pathMission4-1.py
File metadata and controls
141 lines (113 loc) · 5.36 KB
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
score = int(input("점수를 입력해주세요 : "))
if(score == 100):
print("<멘토> : 잘했어요~")
elif(score >= 80 and score < 100):
print("<멘토> : 괜찮아요~")
elif(score >= 40 and score < 80):
print("<멘토> : 노력해요~")
elif(score < 40 and score >= 0):
print("<멘토> : 공부 안했니?")
else:
print("점수를 다시 입력해주세요!(범위 : 0 ~ 100)")
# Mission4.py를 참고하세요.
# 위 코드에서 해결하지 못한 문제는 뭐였는가?
# 바로 입력을 문자로 받으면 오류가 뜬다는 것이다.
# 왜 오류가 일어 났을까?
# 그 이유는 코드의 첫줄에서 시작된다.
# score = int(input("점수를 입력해주세요 : "))
# 이 코드에서 우리는 점수를 입력 받을 떄 애초에 정수형으로 바꾸어서 score에 할당하려고 했다.
# 하지만 문자를 입력했고, 문자를 숫자로 바꿀 수 없기에 오류가 뜬 것이다.
# 이렇듯 프로그래밍, 코딩을 할 때는 "예외 처리"를 꼭 해주어야 한다.
# 프로그래밍을 할 때 "예외 처리"는 필수이다.
# 위 코드를 조금만 더 생각해보자. 과연 문자만 오류를 내보낼까?
# 아무것도 입력하지 않고 Enter로 입력을 넘겨버리면?
# 이처럼 프로그램의 오류와 사용 범위를 확실하게 만들기 위해서는 "예외 처리"가 필수이다.
# 꼭 몸에 익히도록 하자.
##############################################################################
"""
** 예외 처리 어떻게 하는가?
try: <- 요 녀석을 이용할 것이다.
< try: (예외 처리) 사용 방법 >
try:
예외가 일어날 수 있는 코드1
예외가 일어날 수 있는 코드2
...
...
except:
예외가 일어났을 떄 사용할 코드1
예외가 일어났을 떄 사용할 코드2
...
...
위와 같은 문법으로 사용된다.
"""
##############################################################################
# 자 그러면 위 방법대로 예외 처리 시켜 프로그램을 완성시켜보자.
###################################
"""
try:
score = int(input("점수를 입력해주세요 : ")) # 예외 처리를 하면 try부분은 안전지대가 되며, 오류가 발생해도 프로그램이 죽지 않는다.
except:
print("점수는 숫자를 입력해줘야합니다.") # 오류가 발생하면 (내가 지정한 코드에서 오류가 난 경우) except로 오게 된다.
if(score == 100):
print("<멘토> : 잘했어요~")
elif(score >= 80 and score < 100):
print("<멘토> : 괜찮아요~")
elif(score >= 40 and score < 80):
print("<멘토> : 노력해요~")
elif(score < 40 and score >= 0):
print("<멘토> : 공부 안했니?")
else:
print("점수를 다시 입력해주세요!(범위 : 0 ~ 100)")
"""
###################################
# 하지만 위 코드도 아직 안심하기에는 이르다.
# 오류가 났을 경우 score를 입력 받지 않았기 때문에 if문에 있는 조건문에서 score를 정의하지 않았다는 오류를 또 낼 것이기 때문이다.
# 이를 해결하는데에는 2가지 방법이 있다.
# 1. exit() 함수로 프로그램 종료
# 2. if문 전체(else 까지를 말함)를 try:에 넣어버림
########### 1번 ###########
print()
input("다음 코드의 결과를 보려면 Enter를 눌러주세요.")
print()
print("예외 처리까지 시킨 결과입니다.(1번)")
try:
score = int(input("점수를 입력해주세요 : ")) # 예외 처리를 하면 try부분은 안전지대가 되며, 오류가 발생해도 프로그램이 죽지 않는다.
except:
print("점수는 숫자를 입력해줘야합니다.") # 오류가 발생하면 (내가 지정한 코드에서 오류가 난 경우) except로 오게 된다.
exit() # except가 실행되었을 다음 코드 볼 필요도 없이 프로그램을 꺼버림.
if(score == 100):
print("<멘토> : 잘했어요~")
elif(score >= 80 and score < 100):
print("<멘토> : 괜찮아요~")
elif(score >= 40 and score < 80):
print("<멘토> : 노력해요~")
elif(score < 40 and score >= 0):
print("<멘토> : 공부 안했니?")
else:
print("점수를 다시 입력해주세요!(범위 : 0 ~ 100)")
########### 2번 ###########
print()
input("다음 코드의 결과를 보려면 Enter를 눌러주세요.")
print()
print("예외 처리까지 시킨 결과입니다.(2번)")
try:
score = int(input("점수를 입력해주세요 : "))
if(score == 100):
print("<멘토> : 잘했어요~")
elif(score >= 80 and score < 100):
print("<멘토> : 괜찮아요~")
elif(score >= 40 and score < 80):
print("<멘토> : 노력해요~")
elif(score < 40 and score >= 0):
print("<멘토> : 공부 안했니?")
else:
print("점수를 다시 입력해주세요!(범위 : 0 ~ 100)")
except:
print("점수는 숫자를 입력해줘야합니다.")
# 2번 코드의 경우 주의 사항이 있다.
# 11 9~ 130번째 줄의 코드를 보면, try: 즉, indent를 해줘야한다.
# 그 다음에 if문에 if(score == 100): 부분에도 콜론이 들어가 있으니 indent를 해야한다.
# try와 블럭 구분을 해야 "아, 이 명령은 try의 명령문이구나", "아, 이 명령은 if의 명령문이구나"를 컴퓨터가 알 수 있다.
# 예외 처리
# 정말 중요하므로 꼭 알고 넘어가자
# try:와 except:는 꼭 알아두기!