error 발생 예상 시 try & except를 이용하여 에러가 발생하는 것에 대한 커멘트를 만들어 놓기
try:
a = 3/0
except:
print("0으로 나눌 수 없습니다.")
except뒤의 부분을 비워놓아도 상관은 없으나
에러의 이름을 알고 싶을 경우Exception as ex로 excpet뒤에 선언해주면 된다
try:
# 에러가 발생할 가능성이 있는 코드
except Exception as ex:
print("{}에러가 발생했습니다".format(ex))
실행흐름을 깨뜨려 필요한 값만 얻고 싶을 경우 의도적으로 에러를 발생시키기도 한다
아래는 그예제이다.
*필요한 경우에만 사용하자 :)
try:
school = {'1반': [172,177,165,189,190],"2반":[167,165,187,177,138]}
for class_number, students in school.items():
for student in students:
if student>190:
print(class_number,'반에 190을 넘는 학생이 있습니다)
#여기서 break를 쓰면 1 ,2 반 값이 다 나온다
raise StopIteration
except StopIteration:
print('정상종료')
try:
...
raise error type
...
exception error type:
print("sth")
and 연산은 하나만 false 면 전체가 false 임
or 연산은 하나만 true여도 전체가 true 이니
식을 읽을때 이 개념을 유의하자.
이 개념을 단락평가라고 한다.
def returu_false():
print("함수 return_false")
return False
def return_true():
print("함수 return_true")
return True
print("테스트1")
a = return_false()
b = return_true()
if a and b :
print(True)
else:
print(False)
####
print("테스트2")
if return_false() and return_true(): #and연산에서 첫번째 값이 false이면 뒤에값이 실행 되지 않음. 따라서 여기서 return_true()는 실행되지 않을 것임.
print("True")
else:
print(False)
Ex1)
a = bool(0)
print(a)
if 'a':
print("wtha")
if '':
print('dddd')
else:
print("wdfd")
Ex2)
value = input("inputsth") or "nothing"
print("inputvalue", value)
만약 input에 Hi를 넣으면 값이 들어가니 true값이 되어 print값으로 hi가 나옴
만약 아무것도 넣지 않는다면 앞에 값이 false가 되니 전적으로 or 연산자 뒤의 nothing을 따르게 됨
따라서 printing 되는것은 inputvalue nothing 이 됨.