파이썬으로 XML 처리하기 목차 XML 문서 생성하기 📌 ElementTree를 이용하여 다음과 같은 구조의 XML 문서를 생성해 보자. Tove Jani Reminder Don't forget me this weekend! 다음과 같은 소스를 작성한다. 위 소스의 실행 결과는 다음과 같다. Tove 엘리먼트(Element)를 이용하면 태그를 만들 수 있고, 만들어진 태그에 텍스트 값을 추가할 수 있다. 🎯 SubElement 📌 서브엘리먼트(SubElement)를 이용하면 조금 더 편리하게 태그를 추가할 수 있다. 실행 결과는 다음과 같다. ToveJani 서브엘리먼트는 태그명과 태그의 텍스트 값을 한 번에 설정할 수 있다. 또는 다음과 같이 태그 사이에 태그를 추가하거나 특정 태그를 삭제할 수도 있다..
목차 메타 문자 +, *, [], {}등의 메타문자는 매치가 진행될 때 현재 매치되고 있는 문자열의 위치가 변경된다. (보통 소모된다고 표현) 하지만 이와 달리 문자열을 소모가 없는(zero-width assertions) 메타 문자들에 대해서 살펴본다. 🎯 | |메타 문자는 "or"의 의미와 동일하다. A|B라는 정규식이 있다면 이것은 A또는 B라는 의미가 된다. 🎯 ^ ^메타문자는 문자열의 맨 처음과 일치함을 의미한다. 컴파일 옵션 re.MULTILINE을 사용할 경우에는 여러줄의 문자열에서는 각 라인의 처음과 일치하게 된다. ^Life정규식은 "Life"라는 문자열이 처음에 온 경우에는 매치하지만 처음 위치가 아닌 경우에는 매치되지 않음을 알 수 있다. 🎯 $ $메타문자는 ^메타문자의 반대의 경우이..
목차 정규 표현식의 기초, 메타 문자 📌 정규 표현식에서 사용하는 메타 문자(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씨는 게시판 프로그램을 작성하고 있다. 그런데 게시물의 총 건수와 한 페이지에 보여줄 게시물 수를 입력으로..
프로젝트 오일러 : http://projecteuler.net/archives
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, "..