본문 바로가기
반응형

Python/실전 예제로 배우는 파이썬 프로그래밍25

문자열 처리 메타문자를 이용하여 패턴(정규 표현식)을 작성하고, re 모듈에서 제공하는 함수들을 이용하여 패턴을 문자열에 적용해서 패턴과 일치되는 문자열을 찾고, 일치 여부를 검사하고, 다른 문자열로 치환하는 과정을 예문으로 알아봅니다. 문자열 찾기 pattern은 메타문자를 이용하여 작성한 정규 표현식, string은 처리할 문자열을 의미하고, flags=0은 기본값 0을 가지고 있기 때문에 일반적으로 생략합니다. findall() 함수는 패턴과 일치되는 문자열이 있으면 해당 문자열을 리스트(list) 자료구조로 반환하고, 일치하는 문자열이 없으면 빈 리스트([])로 반환합니다. 형식 import re re.findall(pattern, string[, flags=0]) 실습 문자열 찾기 예시 import re# .. 2023. 3. 17.
정규 표현식(Regular Expression) 정규 표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 자연어를 대상으로 원하는 단어만 추출하기 위해서 단어가 되기 위한 일정한 패턴이 존재하는데, 이러한 패턴을 표준화된 텍스트 형식으로 나타낸 것을 정규 표현식이라 하며, 이때 텍스트를 구성하는 하나의 문자를 메타문자라고 합니다. 메타문자 정규표현식에서 일정한 의미를 가지고 있는 특수문자를 메타문자(Meta characters)라고 합니다. 메타 문자는 대부분의 프로그래밍 언어에서 표준으로 사용됩니다. 주요 메타문자 메타문자 정규 표현식 의미 . .x 또는 x. 임의의 한 문자가 x앞이나 뒤에 오는 패턴 지정 ^ ^x x로 시작하는 문자열(접두어 패턴 지정) $ x$ x로 끝나는 문자열(접미어 패턴 지정) * x* x.. 2023. 3. 16.
객체지향프로그래밍 연습문제 [문제 1] 다음과 같은 에 맞게 Rectangle 클래스를 작성하시오. 1. 멤버변수: 가로(width), 세로(height) 2. 생성자: 가로(width), 세로(height) 멤버 변수 초기화 3. 메서드(area_calc): 사각형의 넓이를 구하는 함수 사각형 넓이 = 가로 * 세로 4. 메서드(circum_calc): 사각형의 둘레를 구하는 함수 사각형 둘레 = (가로 + 세로) * 2 5. 기타 세부내용은 참조 사각형의 넓이와 둘레를 계산합니다. 사각형의 가로 입력: 10 사각형의 세로 입력: 5 --------------------------------- 사각형의 넓이: 50 사각형의 둘레: 30 --------------------------------- class Rectangle: #.. 2023. 3. 15.
패키지와 모듈 파이썬을 설치하면 사용자 컴퓨터에 기본적으로 파이썬의 기본 라이브러리(Library)가 설치됩니다. 라이브러리는 폴더의 모양을 띤 패키지(Package)와 파일(*. py) 형식으로 제공하는 모듈(Module)로 분류됩니다. 패키지는 관련 있는 모듈들을 하나의 꾸러미 형태로 묶어주는 역할이고, 모듈은 함수나 클래스를 파일로 작성해서 제공됩니다. 라이브러리 import 라이브러리를 사용하기 위해서는 먼저 패키지나 모듈을 import해야 합니다. 형식 import 모듈# 모듈 멤버 가져오기 import 패키지.모듈# 패키지에 포함된 모듈의 멤버 가져오기 from 패키지.모듈 import 함수, 클래스, ...# 함수, 클래스 가져오기 산포도 패키지(myPackage)는 산포도 모듈(scattering.py).. 2023. 3. 14.
내장클래스 클래스는 함수와 마찬가지로 사용자가 직접 정의하는 사용자 클래스와 라이브러리 형식으로 제공되는 내장클래스로 분류됩니다. 파이썬에서는 풍부한 라이브러리를 통해서 수많은 함수와 클래스를 제공하고, 이를 이용하여 애플리케이션을 개발하거나 자료 분석에 활용합니다. 파이썬에서 제공하는 내장클래스를 사용하기 위해서는 다음과 같은 형식으로 import 명령어를 이용하여 모듈을 포함시켜야 합니다. 형식 1) import 모듈명 2) from 모듈명 import 클래스명1, 클래스명2, ... 한편 builtins 모듈에서 제공하는 내장함수와 동일하게 내장클래스도 import 없이 사용할 수 있습니다. builtins 모듈 내장클래스 import가 필요 없는 builtins 모듈의 enumerate 내장클래스의 생성자를.. 2023. 3. 13.
객체지향 기법 캡슐화 자료와 알고리즘이 구현된 함수를 하나로 묶고, 공용 인터페이스만으로 접근을 제한하여 객체의 세부 내용을 외부로부터 감추는 기법을 캡슐화(encapsulation)라고 합니다. 클래스에서 은닉정보는 변수 앞부분에 _기호를 연속하여 두 개 넣으면 외부에서 접근이 불가능한 은닉(private) 변수가 됩니다. 그리고 은닉 변수를 외부에서 접근할 수 있는 공용 인터페이스는 획득자(getter)와 지정자(setter)로 분류합니다. 실습 캡슐화 예시 class Account: # (1) 은닉 멤버변수 __balance = 0# 잔액 __accName = None# 예금주 __accNo = None# 계좌번호 # (2) 생성자: 멤버변수 초기화 def __init__(self, bal, name, no): .. 2023. 3. 12.
클래스(Class) 클래스와 객체는 객체지향프로그래밍에서 나오는 용어입니다. 클래스(Class)는 프로그램을 이용해서 객체를 만들어주는 역할을 하고, 객체(Object)는 클래스에 의해서 만들어지는 결과물(Instance)을 말합니다. 클래스 클래스의 속성은 자료(data)를 나타내며, 명사 형태로 기술합니다. 속성 앞부분의 (-, +)는 외부에서 접근여부를 나타내는 기호입니다. - 기호는 외부에서 접근을 차단하여 해당 자료를 은닉(private)화 시키고, +는 외부에서 접근을 허용하도록 공용(pubic)화 시킵니다. 또한 클래스의 행위는 자료를 연산하거나 조작하는 역할을 하며, 동사 형태로 기술하고, 프로그램에서는 기능을 정의하는 함수로 표현합니다. 객체 객체는 클래스에 의해서 만들어지는 결과물입니다. 클래스의 속성에 .. 2023. 3. 11.
프로그램 블록 만들기 연습문제 [문제 1] 다음 height 변수에 별(star)의 층수를 입력하면 각 층마다 별의 개수가 한 개씩 증가하여 출력되고, 마지막 줄에 별의 개수를 출력하시오. height: 3 ← 키보드 입력 * ** *** start 개수: 6 # 함수 정의 def StarCount(height): # 층수, 별수 변수 선언 h_cnt = s_cnt = 0 while h_cnt < height: h_cnt += 1# 층수 카운터(1,2,3) print('*'*h_cnt)# 별 출력 s_cnt += h_cnt# 별수 카운터 return s_cnt [문제 2] 중첩함수를 적용하여 다음 에 맞게 은행계좌 함수를 완성하시오. # 함수 정의 def bank_account(bal): balance = bal# 잔액 초기화(100.. 2023. 3. 10.
재귀함수(Recursive function) 재귀함수: 함수 내부에서 자신의 함수를 반복적으로 호출하는 함수 재귀함수는 반복적으로 호출하기에 반드시 함수 내에는 반복을 탈출(exit)은 조건이 필수이며, 반복적으로 변수를 조금씩 변경하여 연산을 수행하는 알고리즘에서 이용됩니다. 카운트 1에서 n까지 정수를 카운트(count)하는 과정을 살펴보면 변수의 값을 반복적으로 1씩 증가하고 이를 출력합니다. 실습 숫자 카운트 예시 # (1) 재귀함수 정의 : 1~n 카운트 def Counter(n) : if n == 0 : return 0# 종료 조건 else : Counter(n-1)# 재귀호출 # (2) 함수 호출 print('n=0 : ', Counter(0)) n=0 : 0 # (1) 재귀함수 정의 매개변수 n을 갖는 Counter() 함수는 종료조.. 2023. 3. 9.
중첩함수 중첩함수: 함수 내부에 또 다른 함수가 내장된 형태 형식 def 외부함수(인수) : 실행문 def 내부함수(인수) : 실행문 return 값 return 내부함수 일급함수와 함수 클로저 파이썬의 중첩함수는 외부함수나 내부함수를 변수에 저장할 수 있는데, 이러한 특성을 갖는 함수를 일급함수(First class Function)이라고 합니다. 특히 내부함수는 외부함수의 return 명령문을 이용하여 반환하는 형태를 함수 클로저(Function cloure)라고 합니다. 함수 클로저는 외부함수가 종료되어도 내부 함수에서 선언된 변수가 메모리에서 소멸되지 않은 상태로 내부 함수를 활용할 수 있습니다. 실습 일급함수와 함수 클로저 예시 # (1) 일급 함수 def a():# outer print('a 함수') .. 2023. 3. 8.
특수함수 특수함수: 특정한 문제의 해결 과정에서 필요로 하는 함수 가변인수 함수 파이썬에서는 하나의 매개변수로 여러 개의 실인수를 받을 수 있는 가변인수를 제공합니다. 여러 개의 실인수를 하나이 매개변수로 받을 때 '*매개변수' 형식은 튜플(tuple) 자료구조로 받고, '**매개변수' 형식은 딕트(dict) 자료구조로 받습니다. 형식 def 함수명(매개변수, *매개변수, **매개변수) : 실습 가변인수를 갖는 함수 예시 # (1) 튜플형 가변인수 def Func1(name, *names) : print(name)# 실인수 : 홍길동 print(names)# 실인수 : ('이순신', '유관순') Func1("홍길동", "이순신", "유관순") 홍길동 ('이순신', '유관순') # statistics 모듈 impo.. 2023. 3. 7.
사용자정의함수 사용자가 직접 함수 내에 필요한 코드를 작성해 놓고, 외부의 값을 인수로 받아서 처리한 후 처리 결과를 반환하는 파이썬의 사용자정의함수의 형식은 다음과 같습니다. 형식 def 함수명(매개변수) : 실행문 실행문 return 값 사용자정의함수는 일련의 실행문이 반복될 경우 이를 함수로 정의해 놓고, 필요시 함수 호출을 통해서 실행이 가능합니다. 실습 사용자정의함수 예시 # (1) 인수가 없는 함수 def userFunc1() : print('인수가 없는 함수') print('userFunc1') userFunc1()# 함수 호출 인수가 없는 함수 userFunc1 # (2) 인수가 있는 함수 def userFunc2(x, y) : print('userFunc2') z = x + y print('z=', z.. 2023. 3. 6.
반응형