프로그램 작성

궁극의 파이썬 초보자 가이드

2021년 10월 30일

목차

  • 환경 설정
    • 로컬 환경 설정
    • 파이썬을 얻는 방법
    • 파이썬을 설치하는 방법
    • 윈도우 설치
    • 유닉스/리눅스 설치
    • MAC 설치
    • Python용 경로 설정
    • Unix/Linux용 경로 설정
    • Windows용 경로 설정
  • 파이썬 환경 변수
    • 파이썬 실행
  • 기본 구문
    • 파이썬 식별자
    • 파이썬 문
    • 파이썬의 들여쓰기
    • 파이썬의 주석
    • 입력 받기
    • 출력 표시
  • 변수 유형
    • 변수에 값 할당
    • 파이썬 데이터 유형
    • 문자열
    • 튜플
    • 기울기
    • 번호
  • 기본 연산자
    • 할당 연산자
    • 비트 연산자
    • 논리 연산자
    • 산술 연산자
    • 비교 연산자
    • ID 연산자
    • 멤버십 운영자
  • 의사결정
    • If 문
    • 다른 경우라면
    • 중첩되는 경우
    • If-elif-else-ladder
    • if 문 약식
    • 약식 if-else 문
  • 루프
    • 루프 동안
    • For 루프
    • 중첩 루프
    • 루프 제어문
    • 계속 문
    • 중단 문
    • 통과 진술
  • 번호
    • 숫자 유형 변환
    • 난수 함수
    • 삼각 함수
    • 수학 함수
  • 문자열
    • 문자열 만들기
    • 문자열 특수 연산자
    • 문자열 형식화 연산자
    • 탈출 문자
    • 기본 제공 문자열 메서드
  • 튜플
    • 튜플의 값 액세스
    • 튜플 업데이트
    • 기본 튜플 연산자
    • 내장 튜플 함수
    • 인덱싱 및 슬라이싱
    • 튜플 삭제
  • 기울기
    • 목록의 값 액세스
    • 목록 업데이트
    • 기본 목록 연산자
    • 내장 목록 함수 및 메서드
    • 인덱싱 및 슬라이싱
    • 목록 요소 삭제
  • 사전
    • 사전 만들기
    • 사전에 요소 추가
    • 사전에서 요소 제거
    • 파이썬 사전 메서드
  • 날짜와 시간
    • 시간 튜플
    • 시간 모듈
    • 캘린더 모듈
  • 기능
    • 함수를 정의하는 방법
    • 함수 호출
    • 참조로 전달
    • 값으로 전달
    • 함수 인수
    • 가변 길이 인수
    • 필수 인수
    • 기본 인수
    • 키워드 인수
    • 익명 기능
  • 모듈
    • 수입 명세서
    • from import 문
    • from import * 문
    • 모듈 찾기
    • locals() 및 globals() 함수
    • 네임스페이스 및 범위 지정
    • dir( ) 함수
    • reload() 함수
  • 파일 I/O
    • 파일 열기
    • 파일 객체 속성
    • 파일 닫기
    • 문 포함
    • 쓰기 방법
    • 읽기 방법
    • 이름 바꾸기() 메서드
    • remove() 메서드
    • 파일 위치
  • 예외
    • 예외란 무엇입니까?
    • 예외 처리
    • 예외 발생
    • 표준 예외 목록
    • 사용자 정의 예외
    • Python의 어설션
  • 클래스 및 객체
  • CGI 프로그래밍
    • 웹 브라우징
    • HTTP 헤더
    • CGI 환경 변수
    • GET 메서드
    • POST 방식
    • CGI에서 쿠키 사용
    • 어떻게 작동합니까?
  • MySQL 데이터베이스 액세스
    • 데이터베이스 테이블 생성
    • 삽입 작업
    • 읽기 작업
    • 업데이트 작업
    • DELETE 작업
    • 트랜잭션 수행
    • 커밋 작업
    • 롤백 작업
    • 데이터베이스 연결 해제
    • 오류 처리
  • 네트워크
    • 소켓이란 무엇입니까?
    • 소켓 모듈
    • 파이썬 인터넷 모듈
  • 이메일 보내기
    • Python을 사용하여 HTML 이메일 보내기
    • 이메일로 첨부 파일 보내기
  • 다중 스레드 프로그래밍
    • 새 스레드 시작
    • 스레딩 모듈
    • 스레드 동기화
    • 다중 스레드 우선 순위 대기열
  • XML 처리
    • XML이란 무엇입니까?
    • XML 파서 아키텍처 및 API
    • SAX API로 XML 구문 분석
      • make_parser 메서드
      • 구문 분석 방법
      • parseString 메서드
  • GUI 프로그래밍
    • Tkinter 위젯
  • 지오메트리 관리
  • 추천 기사

클래스 및 객체

파이썬은 존재했을 때부터 객체지향 언어였으며, 이로 인해 클래스와 객체를 사용하고 생성하는 것이 더 쉬워졌습니다. 이 장은 파이썬의 객체 지향 프로그래밍 지원을 사용하는 전문가가 되는 데 도움이 될 것입니다.

객체 지향 프로그래밍에 대한 지식이 충분하지 않다면 여기에서 시작해야 할 사항이 약간 있습니다.

    등급− 클래스의 개체를 특징짓는 속성 집합을 정의하는 개체에 대한 사용자 정의 프로토타입입니다. 점 표기법을 통해 액세스되는 클래스 변수, 인스턴스 변수 및 메서드.물체− 해당 클래스에 의해 정의된 데이터 구조의 인스턴스입니다. 객체는 클래스 변수와 인스턴스 변수로 구성됩니다.클래스 변수− 클래스의 모든 인스턴스가 공유하는 변수입니다. 클래스 변수는 클래스 내에서 정의되지만 클래스 메소드 외부에서 정의됩니다. 클래스 변수는 빈번한 인스턴스 변수로 사용되지 않습니다.데이터 멤버- 클래스 및 해당 객체와 관련된 데이터를 유지하는 인스턴스 변수입니다.인스턴스 변수− 일반적으로 메서드 내부에 정의되는 변수로 현재 클래스 인스턴스에 속합니다.함수 오버로딩- 특정 기능에 하나 이상의 행동을 할당하는 것. 수행되는 작업은 관련된 개체 또는 인수의 유형에 따라 다릅니다.연산자 오버로딩− 특정 운영자에게 하나 이상의 기능 할당.계승− 클래스의 특성을 해당 클래스에서 파생된 다른 클래스로 이전하는 것입니다.방법− 클래스 정의에 정의된 특수한 종류의 함수입니다.

수업 만들기

클래스는 새 클래스 정의를 만듭니다. 클래스 이름 뒤에는 class 키워드 다음에 콜론이 옵니다.

통사론

|_+_|
  • 클래스는 ClassName.__doc__를 통해 액세스되는 문서 문자열로 구성됩니다.
  • class_suite는 클래스 멤버, 데이터 속성 및 기능을 정의하는 구성 요소 문으로 구성됩니다.
img 617dd27284418

클래스 객체

개체는 클래스의 인스턴스입니다. 클래스는 청사진과 같지만 실제 값이 있는 클래스의 복사본입니다.

img 617dd272d3ac5

산출

img 617dd273361bc

속성 액세스

객체와 함께 점 연산자를 사용하여 객체의 속성에 액세스할 수 있습니다.

  • getattr(obj, name[, default]) - 객체의 속성에 접근할 때 사용합니다.
  • hasattr(obj,name) - 속성이 존재하는지 여부를 확인하는 데 사용됩니다.
  • setattr(obj,name,value) - 속성을 설정할 때 사용합니다. 속성이 존재하지 않으면 생성됩니다.
  • delattr(obj, name) - 속성을 삭제할 때 사용합니다.

내장 클래스 속성

모든 Python 클래스는 내장 속성을 계속 따르며 다른 속성과 마찬가지로 점 연산자를 사용하여 액세스합니다.

    __딕트__- 클래스의 네임스페이스를 담고 있는 딕셔너리이다.__문서__− 정의되지 않은 경우 클래스 문서 문자열이거나 없음입니다.__이름__- 클래스 이름.__기준 치수__− 클래스가 정의된 모듈 이름입니다. 이 속성은 대화식 모드에서 __main__입니다.__베이스__- 기본 클래스 목록에서 나타나는 순서대로 기본 클래스를 포함하는 빈 튜플.

쓰레기 수거

Python은 메모리 공간을 확보하기 위해 객체를 자동으로 삭제합니다. 파이썬이 더 이상 사용하지 않는 메모리 블록을 주기적으로 회수하는 프로세스를 가비지 컬렉션이라고 합니다.

파이썬의 가비지 컬렉터는 프로그램 실행 중에 실행되며 객체의 참조 횟수가 0에 도달하면 트리거됩니다.

객체의 참조 횟수는 새 이름이 지정되거나 컨테이너(목록, 튜플 또는 사전)에 배치될 때 증가합니다. 객체를 삭제하면 객체의 참조 카운트가 감소합니다. , 참조가 재할당되거나 참조가 범위를 벗어납니다. 객체의 참조 횟수가 0에 도달하면 파이썬은 이를 자동으로 수집합니다.

img 617dd273789c9

산출

img 617dd273c29af

클래스 상속

새 클래스 이름 뒤 괄호 안에 부모 클래스를 언급하여 이전 클래스에서 파생하여 클래스를 만들 수도 있습니다.

자식 클래스는 부모 클래스의 속성을 상속받을 수 있으며 자식 클래스에 정의된 것처럼 기능을 사용할 수 있습니다. 자식 클래스는 부모의 메서드와 데이터 멤버를 재정의할 수도 있습니다.

통사론

|_+_|

재정의 메서드

부모 클래스 메서드를 재정의할 수 있습니다. 부모의 메서드를 재정의하는 이유는 하위 클래스에서 고유하거나 다른 기능을 원할 수 있기 때문입니다. 다음은 몇 가지 기본 오버로드 방법입니다.

예 아니오 방법 설명
하나__repr__( 자기 )평가 가능한 문자열 표현
__del__( 자기 )소멸자, 객체 삭제
__cmp__ ( 자기, x )객체 비교
4__init__ ( self [,args...] )생성자(선택적 인수 포함)
5__str__( 자기 )인쇄 가능한 문자열 표현

정규식

정규식은 패턴에 포함된 특수 구문을 사용하여 문자열 집합을 찾거나 일치시키는 데 도움이 되는 고유한 문자 시퀀스입니다. 정규식은 UNIX 세계에서 널리 사용됩니다.

Python 모듈은 Python에서 Perl과 유사한 정규식을 완벽하게 지원합니다. 모듈에서 예외가 발생합니다.

매치 기능

RE 패턴을 선택적 플래그가 있는 문자열과 일치시키려고 시도합니다.

통사론

|_+_|
예 아니오 매개변수 설명
하나깃발비트 OR(|)를 사용하여 다른 플래그를 지정합니다.
무늬일치하는 정규식입니다.
문자열의 시작 부분에서 패턴과 일치하도록 검색되는 문자열입니다.

검색 기능

선택적 플래그를 사용하여 문자열 내에서 RE 패턴의 첫 번째 발생을 검색합니다.

통사론

|_+_|
예 아니오 매개변수 설명
하나깃발비트 OR(|)를 사용하여 다른 플래그를 지정합니다.
무늬일치하는 정규식입니다.
문자열의 시작 부분에서 패턴과 일치하도록 검색되는 문자열입니다.

정규식 수정자

예 아니오 매개변수 설명
하나리엠$가 줄의 끝과 일치하도록 만들고 ^가 모든 줄의 시작과 일치하도록 합니다.
리엘현재 로케일에 따라 단어를 해석합니다. 해석은 알파벳 그룹과 단어 경계 동작에 영향을 줍니다.
리유유니코드 문자 집합에 따라 문자를 해석합니다. 플래그는 w, W, , B의 동작에 영향을 줍니다.
4재.X더 귀여운 정규식 구문을 허용합니다. 공백을 무시하고 이스케이프 처리되지 않은 #을 주석 표시로 처리합니다.
5다시점은 개행을 포함하여 모든 문자와 일치합니다.
6재.나대소문자를 구분하지 않는 일치를 수행합니다.

정규 표현식 패턴

예 아니오 무늬 설명
하나.개행을 제외한 단일 문자와 일치합니다.
에이| 비또는 b와 일치합니다.
[…]괄호 안의 단일 문자와 일치합니다.
4[^...]대괄호가 아닌 단일 문자와 일치합니다.
5$줄의 끝과 일치합니다.
6^^행의 시작과 일치합니다.
7답장*이전 표현식의 0개 이상의 발생과 일치합니다.
8다시 +이전 표현식의 하나 이상의 발생과 일치합니다.
9답장?이전 표현식의 0 또는 1번과 일치합니다.
10다시{n}이는 앞의 표현식이 정확히 n번 발생하는 것과 일치합니다.
열하나다시{n,m}이전 표현식의 최소 n 및 m번 발생과 일치합니다.
12다시{n,}이전 표현식의 n개 이상의 항목과 일치합니다.
13(답장)정규 표현식을 그룹화하고 일치하는 텍스트를 기억합니다.
14(? imx)정규식 내에서 i, m 또는 x 옵션을 일시적으로 토글합니다.
열 다섯(?imx: 다시)괄호 안의 i, m 또는 x 옵션을 일시적으로 토글합니다.
16?: 답장)일치하는 텍스트를 기억하지 않고 정규식을 그룹화합니다.
17(?-imx)정규식 내에서 i, m 또는 x 옵션을 일시적으로 해제합니다.
18(?-imx: 다시)괄호 안에 있는 i, m 또는 x 옵션을 일시적으로 끕니다.
19(?#…)논평.
이십(?= 다시)패턴을 사용하여 위치를 지정합니다. 범위가 없습니다.
이십 일(?! 답장)패턴 부정을 사용하여 위치를 지정합니다. 범위가 없습니다.
22(?> 다시)역추적 없이 독립 패턴과 일치합니다.
23단어 문자와 일치합니다.
24단어가 아닌 문자와 일치합니다.
25에스공백이 아닌 것과 일치합니다.
26에스공백과 일치합니다.
27숫자가 아닌 것과 일치합니다.
28숫자와 일치합니다. [0-9]와 동일합니다.
2910이미 일치하는 경우 n번째 그룹화된 하위 표현식과 일치합니다. 그렇지 않으면 문자 코드의 8진수 표현을 나타냅니다.
30에게문자열의 시작 부분과 일치합니다.
31와 함께문자열의 끝과 일치합니다. 개행 문자가 있으면 개행 직전에 일치합니다.
32와 함께문자열의 끝과 일치합니다.
33G마지막 경기가 끝난 지점과 일치합니다.
3. 4 , 등줄 바꿈, 캐리지 리턴, 탭 등과 일치합니다.
35비단어 경계와 일치합니다.
361…9n번째 그룹화된 하위 표현식과 일치합니다.
37대괄호 안에 있을 때 백스페이스(0x08)와 일치합니다.

캐릭터 클래스

예 아니오 예시 설명
하나[아이오우]하나의 소문자 모음과 일치합니다.
[0-9]모든 숫자와 일치합니다. [0123456789]와 동일
[Pp] ythonPython 또는 python과 일치합니다.
4[아~즈]모든 소문자 ASCII 문자와 일치합니다.
5문지르다루비 또는 루비와 일치합니다.
6[^아이오우]소문자 모음 이외의 것과 일치합니다.
7[^0-9]숫자가 아닌 다른 것과 일치합니다.
8[a-zA-Z0-9]위의 항목 중 하나와 일치합니다.
9[A-Z]모든 대문자 ASCII 문자와 일치합니다.
10.개행을 제외한 단일 문자와 일치합니다.
열하나단어 문자와 일치합니다.
12단어가 아닌 문자와 일치합니다.
13에스공백이 아닌 것과 일치합니다.
14에스공백과 일치합니다.
열 다섯숫자가 아닌 것과 일치합니다.
16숫자와 일치합니다. [0-9]와 동일합니다.

반복 사례

예 아니오 예시 설명
하나루비+문지름 플러스 1 이상 y와 일치합니다.
루비*문지름 더하기 0 이상 y와 일치합니다.
루비?ruby 또는 ruby와 일치합니다. y는 선택 사항입니다.
4d{3}정확히 3자리 숫자와 일치합니다.
5d{3,}3자리 이상의 숫자와 일치합니다.
6d{3,5}3, 4 또는 5자리 숫자와 일치합니다.

앵커

예 아니오 예시 설명
하나파이썬 Z문자열 끝에서 Python과 일치합니다.
파이썬$문자열이나 줄의 끝에서 Python과 일치합니다.
^파이썬문자열 또는 내부 줄의 시작 부분에서 Python과 일치합니다.
4 에이파이썬문자열의 시작 부분에서 Python과 일치합니다.
5파이썬(?=!)느낌표가 뒤에 오는 경우 Python과 일치합니다.
6파이썬(?!!)느낌표가 뒤에 오지 않으면 Python과 일치합니다.
7파이썬단어 경계에서 Python과 일치합니다.