목차 정규 표현식의 기초, 메타 문자 📌 정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것들이 있다. 💡 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용되는 문자를 말한다. . ^ $ * + ? { } [ ] \ | ( ) 정규 표현식에 위 메타 문자들이 사용되면 특별한 의미를 갖게 된다. 문자 클래스 [ ] 📌 문자 클래스로 만들어진 정규식은 "[와 ] 사이의 문자들과 매치" 라는 의미를 갖는다. 💡 문자 클래스를 만드는 메타 문자인 [ ] 사이에는 어떤 문자도 들어갈 수 있다. 정규 표현식이 [abc] 라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다. 문자열 "a", "before", "dude" 가 정규식 [abc]와 ..
정규 표현식 📌 정규 표현식 (Regular Expressions)은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하느 모든곳에서 사용된다. 정규 표현식이 필요한 이유 🔔 주민등록번호를 포함하고 있는 텍스트가 있다. 이 텍스트에 포함된 모든 주민등록번호의 뒷자리를 * 문자로 변경하시오. 정규식을 전혀 모르면 다음과 같은 순서로 프로그램을 작성해야 할 것이다. 전체 텍스트를 공백 문자로 나눈다(split). 나누어진 단어들이 주민등록번호 형식인지 조사한다. 단어가 주민등록번호 형식이라면 뒷자리를 * 로 변환한다. 나누어진 단어들을 다시 조립한다. 결과값: 정규식을 사용하면 다음처럼 훨씬 간편하고 직관적인 코드를 작성할 수 있다. 결과값:
3과 5의 배수 합하기 10 미만의 자연수에서 3과 5의 배수를 구하면 3, 5, 6, 9이다. 이들의 총합은 23이다. 1000 미만의 자연수에서 3의 배수와 5의 배수의 총합을 구하라. 입력받는 값은? 1부터 999 까지(1000미만의 자연수) 출력하는 값은? 3의 배수와 5의 배수의 총합 생각해 볼 것은? 3의 배수와 5의 배수는 어떻게 찾지? 3의 배수와 5의 배수가 겹칠 때는 어떻게 하지? 결과 : 위 문제는 코딩 연습을 할 수 있는 사이트 "프로젝트 오일러" 사이트의 첫 번째 문제이다. 프로젝트 오일러 : http://projecteuler.net/archives 게시판 페이징 하기 📌 A씨는 게시판 프로그램을 작성하고 있다. 그런데 게시물의 총 건수와 한 페이지에 보여줄 게시물 수를 입력으로..
sys 📌 sys 모듈은 파이썬 인터프리터가 제공하는 변수들과 함수들을 집접 제어할 수 있게 해주는 모듈이다. 🎯 명령 행에서 인수 전달하기 - sys.argv 도스 창에서 위의 예처럼 test.py뒤에 또 다른 값들을 함께 넣어 주면 sys.argv라는 리스트에 그 값들이 추가된다. argv_test.py파일을 D:/Python/Mymodules디렉터리에 저장했다고 가정한다. 도스 창에서 다음과 같이 실행. Python 이라는 명령어 뒤의 모든 것들이 공백을 기준으로 나뉘어서 sys.argv리스트의 요소가 됨을 알 수 있다. 🎯 강제로 스크립트 종료하기 - sys.exit sys.exit는 Ctrl+z나 Ctrl+D를 눌러서 대화형 인터프리터를 종료하는 것과 같은 기능을 한다. 프로그램 파일 내에서 사..
abs 📌 abs(x)는 어떤 숫자를 입력으로 받았을 때, 그 숫자의 절대값을 돌려주는 함수 이다. all 📌 all(x)은 반복 가능한(interable) 자료형 x를 입력 인수로 받으며, 이 x가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴한다. 💡 반복 가능한 자료형이란 for문은 그 값을 출력할 수 있는 것을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다. 리스트 자료형 중에서 요소 0이 있으면 거짓이므로 False를 리턴한다. any 📌 any(x)는 중 하나라도 참이 있을 경우 True를 리턴하고, x가 모두 거짓일 경우에만 False를 리턴한다. all(x)의 반대 경우라고 할 수 있다. 리스트 자료형이 모두 거짓 일 때만 False를 리턴한다. [0, "..
예외 처리 📌 오류 예외 처리 기법 다음은 오류 처리를 위한 rty, except문의 기본 구조이다. try: ... except [발생 오류 [as 오류 메시지 변수]]: ... try 블록 수행 중 오류가 발생하면 except 블록이 수행된다. 하지만 try 블록에서 오류가 발생하지 않으면 except 블록은 수행되지 않는다. 위 구문을 보면 [] 기호를 사용하는데, 이 기호는 괄호 안의 내용을 생략할 수 있다는 관례적인 표기법이다. 🔔 예) try, except 만 쓰는 방법 try: ... except: ... 이 경우는 오류 종류에 상관없이 오류가 발생하기만 하면 except 블록을 수행한다. 🔔 예) 발생 오류만 포함한 except문 try: ... except 발생 오류: ... 이 경우는 ..
패키지 패키지(Packages)는 도트(.)를 이용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해준다. 예를 들어 모듈명이 A, B인 경우 A는 패키지명이 되고 B는 A패키지의 B모듈이 된다. 🔔 예) 가상의 game 패키지 예 game/ __init__.py sound/ __init__.py echo.py wav.py graphic/ __init__.py screen.py render.py play/ __init__.py run.py test.py game, sound, graphic, play는 디렉터리명이고 .py 확장자를 가지는 파일은 파이썬 모듈이다. game 디렉터리가 이 패키지의 루트 디렉터리이고, sound, graphic, play는 서브 디렉터리이다. 패키지 만들기 📌..
모듈 📌 모듈 만들고 불러 보기 작성한 모듈을 대화형 인터프리터 경로와 일치 시킨다. import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다. safe_sum 함수는 서로 다른 타입의 객체끼리 더하는 것을 미리 막아 준다. 결과 : 📌 모듈 함수를 사용하는 또 다른 방법 mod1 모듈이름을 생략하고 함수를 호출하기 위한 사용법 이다. * 문자는 "모든것"이라는 뜻인데 파이썬에서도 마찬가지 의미로 사용된다. if __name__ == "__main__": 의 의미 위와 같은 mod1.py 파일을 에디터로 작성했다면 다음처럼 실행할 수 있다. 엉뚱하게도 import mod1을 수행하는 순간 mod1.py가 실행이 되어 결과값을 출력한다. sum과 saf..