TIL-no.18 Python Basic 2

sanghun Lee·2020년 7월 1일
0

Today I Learned

목록 보기
16/66

try except

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)
    

bool 값과 논리연산

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 이 됨.

profile
알고리즘 풀이를 담은 블로그입니다.

0개의 댓글