f = open('exam.txt','wt') #파이썬이 돌아가는 폴더에 동일한 이름의 텍스트 파일을 먼저 만들어 준다, 내용을 쓸거기때문에 'wt'
f.write('========english exam test=========\n') #텍스트파일에 채워질 내용 쓰기
lines = ['listening\n', 'speaking\n', 'writing\n'] #여러줄로 쓸거라 리스트로 한번에 넣어버리기
f.writelines(lines) #여러줄 쓸수있는 writeline 메소드 사용
f.close() #반드시 close() 꼭 해주고
class Monster:
def __init__(self,name): #__init__ 생성자 함수
self.name = name #self.name은 속성
def say(self):
print(f"I'm {self.name}")
shark = Monster("상어") #제일 먼저 init으로 가서 name 변수 위치로 들어감.
shark.say()
wolf = Monster("늑대") #제일 먼저 init으로 가서 name 변수 위치로 들어감.
wolf.say()
##참고한 영상 ## 스타트코딩
class Monster:
def __init__(self,name,age): #__init__ 생성자 함수
self.name = name #self.name은 속성
self.age = age
def say(self):
print(f"I'm {self.name} {self.age}살")
shark = Monster("상어",7) #제일 먼저 init으로 가서 name 변수 위치로 들어감.
wolf = Monster("늑대",3) #제일 먼저 init으로 가서 name 변수 위치로 들어감.
shark.say()
wolf.say()
finally 구문은 예외 처리 구문에서 가장 마지막에 사용할 수 있는 구문이다. 예외가 발생하든 발생하지 않든 무조건 실행할 때 사용하는 코드이다. 정리하면
try : 예외가 발생할 가능성이 있는 코드
except : 예외가 발생했을 때 실행할 코드
else : 예외가 발생하지 않았을 때 실행할 코드
finally : 무조건 실행할 코드
조합해보면 아래와 같다. 이 외에 조합은 실행 시 구문 오류 발생한다.
try + except
try + except + else
try + except + finally
try + except + else + finally
try + finally
#try except 구문으로 파일 열고 닫기
try:
file = open('hi.txt', 'w')
file.write('안녕!')
except:
print('오류 발생')
file.close()
print('#파일이 제대로 닫혔는지 확인하세요')
print('file.closed:', file.closed)
마지막에 finally 안쓰고도 try +except 구문만 해도 아무 문제 없다.
finally 구문은 반복문 또는 함수 내부에 있을 때 위력을 발휘한다. 🌟
def test():
print('test() 함수의 첫 줄')
try:
print('try 구문 시작')
return
print('try 구문의 return 키워드 뒤')
except:
print('except 구문 실행됨')
finally:
print('finally 구문 실행됨')
print('test() 함수의 마지막 줄')
test()
👩🏻💻 try 구문 내부에 return 키워드 있는게 포인트. try 구문 중간에서 탈출해도 finally 구문은 무조건 실행된다. 따라서 함수 내부에서 파일 처리 코드를 깔끔하게 만들고 싶을 때 finally 구문을 활용하는 경우가 많다. try구문에서 원할 때 return키워드로 빠져나가도 파일이 무조건 닫히기 때문 !
contact = {}
while True :
print('======연락처 프로그램======')
print('''
1. 추가 2. 목록보기 3. 검색 4. 수정 5. 삭제 9. 종료
===================================================
''')
menu = int(input('메뉴 선택:'))
if menu == 1:
print('연락처 추가 작업')
name = input('이름:')
tel = input('전화번호:')
contact.setdefault(name, tel) #딕셔너리에 요소 추가 하는 것
print('추가 작업 완료')
elif menu == 2:
print('연락처 목록보기')
for i, j in contact.items():
print(i,':',j)
elif menu == 3:
print('연락처 검색')
name = input('검색할 이름:')
if name in contact:
tel = contact[name]
print(name, ':', tel)
else:
print('등록되지 않은 이름입니다!')
elif menu == 4:
print('연락처 수정')
name = input('수정할 이름:')
if name not in contact:
print('등록되지 않은 이름입니다!')
else:
tel = input('새 전화번호:')
contact[name]= tel
print('수정 작업 완료')
elif menu == 5:
print('연락처 삭제')
name = input('삭제할 이름:')
if name in contact:
contact.pop(name) #삭제
print('삭제 작업 완료')
else :
print('등록되지 않은 이름입니다!')
elif menu == 9:
print('프로그램을 종료합니다!')
break