- Exception 클래스를 상속해서 사용자 예외 클래스를 만들 수 있다.
- NotUseZeroException클래스를 만들어 Exception클래스를 상속받는다.
- 나눗셈 기능을 가지는 divCalculator함수를 만든다.
- 함수안에 분모가 0이 될 때 예외처리가 발생하도록 raise한다.
- divCalculator함수를 사용 할 때 예외처리가 발생 할 수 있으니 try~except 처리해준다.
- except처리 할 때는 사용자가 정의한 NotUseZeroException클래스로 처리해 준다.
- 마지막으로 e(NotUseZeroException)을 출력해서 확인한다.
#예외처리 클래스 만들기
class PasswordLengthShortException(Exception):
def __init__(self,n):
super().__init__(f'{n} : 길이 5 미만!.')
class PasswordLengthLongException(Exception):
def __init__(self,n):
super().__init__(f'{n} : 길이 10 초과!.')
class PasswordWrongException(Exception):
def __init__(self,n):
super().__init__(f'{n} : 잘못된 비밀번호!.')
#비밀번호가 맞을 떄 까지 반복
flag = True
while flag:
pw1 = input('input admin password : ')
if pw1 == 'admin1234':
print('빙고')
flag = False
else:
try:
#while pw1 =='admin1234':
if len(pw1) < 5:
raise PasswordLengthShortException(pw1)
elif len(pw1) >10:
raise PasswordLengthLongException(pw1)
elif pw1 != 'admin1234':
raise PasswordWrongException(pw1)
except PasswordLengthShortException as e1:
print(e1)
except PasswordLengthLongException as e2:
print(e2)
except PasswordWrongException as e3:
print(e3)
input admin password : 123
123 : 길이 5 미만!.
input admin password : 12346785900327
12346785900327 : 길이 10 초과!.
input admin password : admmin1234
admmin1234 : 잘못된 비밀번호!.
input admin password : admin1234
빙고
- 텍스트 파일(.txt)를 파이썬으로 다뤄보자
file = open('C:/pythonTxt/test2.txt','w')
file.write('안녕')
file.close()
시스템 시간과 일정을 텍스트 파일에 작성해 보자
import time
uri = 'C:/pythonTxt/'
dateStr = time.strftime('%Y-%m-%d %H:%M:%S%p')
todaySchedule = input('오늘의 일정: ')
file = open(uri+'test2.txt','w')
file.write(dateStr+'\n'+todaySchedule)
file.close()
오늘의 일정: 파이썬 공부
file = open('C:/pythonTxt/about_python.txt','r')
str = file.read()
print(f'{str}')
file.close()
<#replace('x','y',2) == x라는 문자열을 y로 최초 2개만 변경하겠다.>
str = str.replace('Python','파이썬', 2)
print(f'{str}')
file = open('C:/pythonTxt/about_python.txt','w')
file.write(str)
file.close()
Python은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. Python이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python's Flying Circus〉에서 따온 것이다. 파이썬은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python's Flying Circus〉에서 따온 것이다.
- Python이 파이썬으로 바뀌고 저장되었다. 마지막 3번째 Python은 변경되지 않았다.
- 파일 모드는 파일을 어떤 목적으로 open할지 정한다.
- 'w' 쓰기전용 : 경로에 파일이 없으면 파일 생성, 있으면 덮어씌움
- 'a' 쓰기전용 : 경로에 있는 파일에 내용 덧붙임
- 'x' 쓰기전용 : 파일이 이미 있으면 에러발생
- 'r' 읽기전용 : 파일을 읽어드리는 데 파일이 없으면 에러
사용자가 입력한 숫자에 대한 소수를 구하고 이를 파일에 작성해 보자
uri = 'C:/pythonTxt/'
def writePrimeNumber(n):
file = open(uri+'prime_number.txt','a')
file.write(str(n))
file.write('\n')
file.close()
userInput = int(input('정수를 입력하시오 : '))
for number in range(2,userInput+1):
flag = True
for n in range(2,number):
if number%n == 0:
flag = False
break
if flag:
writePrimeNumber(number)
정수를 입력하시오 : 100
- 리스트 또는 튜플 데이터를 파일에 쓰기 위한 함수이다.
1.예를 들어 language라는 리스트에 들어있는 항목들을 language.txt에 작성하려면
languages = ['c/c++', 'java', 'c#', 'python', 'javascript']
uri = 'C:/pythonTxt/'
for item in languages:
with open(uri + 'languages.txt', 'a') as f:
f.write(item)
f.write('\n')
반복문을 사용해서 하나씩 텍스트 파일에 넣어줘야 한다. 이런 기능을 해주는 함수가 writelines()이다.
#튜플형식이나 리스트형식 모두 가능
languages = ('c/c++', 'java', 'c#', 'python', 'javascript')
uri = 'C:/pythonTxt/'
with open(uri + 'languages.txt', 'a') as f:
# f.writelines(languages)
#개행 처리
f.writelines(item + '\n' for item in languages)