프로그램 작성

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

2021년 10월 30일

목차

  • 환경 설정
    • 로컬 환경 설정
    • 파이썬을 얻는 방법
    • 파이썬을 설치하는 방법
    • 윈도우 설치
    • 유닉스/리눅스 설치
    • MAC 설치
    • Python용 경로 설정
    • Unix/Linux용 경로 설정
    • Windows용 경로 설정
  • 파이썬 환경 변수
    • 파이썬 실행
  • 기본 구문
    • 파이썬 식별자
    • 파이썬 문
    • 파이썬의 들여쓰기
    • 파이썬의 주석
    • 입력 받기
    • 출력 표시
  • 변수 유형
    • 변수에 값 할당
    • 파이썬 데이터 유형
    • 문자열
    • 튜플
    • 기울기
    • 번호
  • 기본 연산자
    • 할당 연산자
    • 비트 연산자
    • 논리 연산자
    • 산술 연산자
    • 비교 연산자
    • ID 연산자
    • 멤버십 운영자
  • 의사결정
    • If 문
    • 다른 경우라면
    • 중첩되는 경우
    • If-elif-else-ladder
    • if 문 약식
    • 약식 if-else 문
  • 루프
    • 루프 동안
    • For 루프
    • 중첩 루프
    • 루프 제어문
    • 계속 문
    • 중단 문
    • 통과 진술
  • 번호
    • 숫자 유형 변환
    • 난수 함수
    • 삼각 함수
    • 수학 함수
  • 문자열
    • 문자열 만들기
    • 문자열 특수 연산자
    • 문자열 형식화 연산자
    • 탈출 문자
    • 기본 제공 문자열 메서드
  • 튜플
    • 튜플의 값 액세스
    • 튜플 업데이트
    • 기본 튜플 연산자
    • 내장 튜플 함수
    • 인덱싱 및 슬라이싱
    • 튜플 삭제
  • 기울기
    • 목록의 값 액세스
    • 목록 업데이트
    • 기본 목록 연산자
    • 내장 목록 함수 및 메서드
    • 인덱싱 및 슬라이싱
    • 목록 요소 삭제
  • 사전
    • 사전 만들기
    • 사전에 요소 추가
    • 사전에서 요소 제거
    • 파이썬 사전 메서드
  • 날짜와 시간
    • 시간 튜플
    • 시간 모듈
    • 캘린더 모듈
  • 기능
  • 모듈
  • 파일 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 위젯
  • 지오메트리 관리
  • 추천 기사

기능

함수는 입력을 받아 출력을 생성하고 특정 계산을 수행하는 일련의 명령문입니다. 아이디어는 몇 가지 일반적인 작업을 함께 모아서 다른 입력에 대해 동일한 코드를 다시 작성하는 대신 함수를 호출할 수 있도록 함수를 만드는 것입니다.

Python은 print() 등과 같은 내장 함수를 제공하지만 함수를 생성할 수도 있습니다. 이러한 함수를 사용자 정의 함수라고 합니다.

img 617dd26e8d81f

산출

img 617dd26ece337

함수를 정의하는 방법

  • 함수 블록은 키워드 def로 시작하고 함수 이름과 괄호( ( ))가 뒤에 옵니다.
  • 모든 입력 인수는 괄호 안에 넣어야 합니다. 괄호 안에 매개변수를 정의할 수 있습니다.
  • 함수의 첫 번째 문은 선택 사항일 수 있습니다. 즉, 함수의 문서화 문자열입니다.
  • 모든 함수 내의 코드는 일반적으로 콜론(:)으로 시작하며 들여쓰기됩니다.
  • return 문은 함수를 종료하며 선택적으로 표현식을 호출자에게 다시 전달합니다. 인수가 없는 return 문은 return None과 동일합니다.

통사론

|_+_|

함수 호출

함수를 정의한다는 것은 함수에 이름을 부여하고 함수에 포함된 매개변수를 지정하며 코드 블록을 구성하는 것을 의미합니다. 함수의 기본 구조가 최종적인 경우 다른 함수에서 또는 Python 프롬프트에서 직접 호출하여 함수를 실행할 수 있습니다.

참조로 전달

파이썬 언어의 모든 매개변수는 일반적으로 참조로 전달됩니다. 즉, 함수 내에서 매개변수가 말하는 내용을 변경하면 변경 사항이 호출하는 함수에도 반영됩니다.

값으로 전달

값에 의한 전달 함수는 일반적으로 호출자가 전달한 인수 객체의 복사본과 함께 제공됩니다. 즉, 원본 개체가 그대로 유지되고 변경 사항이 복사본이 되어 다른 메모리 위치에 저장됩니다.

함수 인수

다음 형식 인수를 사용하여 함수를 호출할 수 있습니다.

  • 가변 길이 인수
  • 필수 인수
  • 기본 인수
  • 키워드 인수

가변 길이 인수

함수를 정의하는 동안 지정한 것보다 더 많은 인수에 대해 함수를 처리해야 합니다. 이러한 인수는 다음과 같이 알려져 있습니다. 가변 길이 인수이며 필수 및 기본 인수와 달리 함수 정의에서 이름이 지정되지 않습니다.

img 617dd26f125c2

산출

img 617dd26f54165

필수 인수

필수 인수는 올바른 순서로 함수에 전달되는 인수입니다. 여기서 함수 호출의 인수는 함수 정의와 정확히 일치해야 합니다.

img 617dd26f8f03f

산출

img 617dd27001f4b

기본 인수

기본 인수는 해당 인수에 대한 함수 호출에 값이 제공되는지 여부에 관계없이 기본값을 가정하는 인수입니다.

img 617dd2703b6e4

산출

img 617dd2707158f

키워드 인수

Python은 키워드 인수로 함수를 호출하는 데 도움이 됩니다. 이 함수 호출을 사용하면 명령문을 임의의 순서로 전달할 수 있습니다.

인수의 이름은 키워드로 처리되고 함수 호출 및 정의에서 일치합니다. 동일한 일치 항목이 발견되면 인수 값이 함수 정의에 복사됩니다.

img 617dd270b419f

산출

img 617dd2710a550

익명 기능

  • 람다 형식은 여러 인수를 사용할 수 있지만 표현식 형식으로 하나의 값만 반환합니다. 명령이나 여러 표현식을 포함할 수 없습니다.
  • 람다에는 표현식이 필요하기 때문에 익명 함수는 인쇄를 직접 호출할 수 없습니다.
  • Lambda 함수에는 로컬 네임스페이스가 있으며 파라미터 목록 및 글로벌 네임스페이스에 있는 변수 이외의 변수에 액세스할 수 없습니다.
  • 그러나 람다는 한 줄 함수인 것으로 보이며 성능상의 이유로 호출 중에 함수 스택 할당을 우회하는 것이 목적인 C++ 또는 C의 인라인 문과 동일하지 않습니다.

모듈

모듈을 사용하면 Python 코드를 논리적으로 구성할 수 있습니다. 코드를 모듈로 그룹화하면 코드를 더 쉽게 이해하고 사용할 수 있습니다. 모듈은 바인딩하고 참조할 수 있는 일관된 이름의 속성을 가진 Python 객체입니다.

즉, 모듈은 Python 코드로 구성된 파일입니다. 모듈은 함수, 클래스 및 변수를 정의할 수 있습니다. 실행 가능한 코드도 포함될 수 있습니다.

수입 명세서

다른 Python 소스 파일에서 import 문을 실행하여 Python 소스 파일을 모듈로 사용할 수 있습니다.

통사론

|_+_|

인터프리터는 import 문을 만나면 검색 경로에 있는 모듈을 가져옵니다. 인터프리터가 모듈을 가져오기 전에 검색하는 디렉토리 목록입니다.

from import 문

Python from 문은 모듈의 특정 속성을 현재 네임스페이스로 가져오는 데 도움이 됩니다.

통사론

|_+_|

from import * 문

모듈의 모든 이름을 현재 네임스페이스로 가져올 수 있습니다.

통사론

|_+_|

모듈에서 현재 네임스페이스로 항목을 가져오는 쉬운 방법을 제공합니다. 그러나 이 문은 드물게 사용해야 합니다.

모듈 찾기

모듈을 가져올 때 인터프리터는 다음 순서로 모듈을 검색합니다.

  • 현재 디렉토리.
  • 모듈이 없으면 쉘 변수 PYTHONPATH에서 각 디렉토리를 검색합니다.
  • 이것도 실패하면 Python은 기본 경로를 확인합니다.

모듈은 시스템 모듈에 sys.path 변수로 저장된 경로를 검색합니다. sys.path 변수에는 현재 디렉터리 PYTHONPATH 및 설치 종속 기본값이 포함되어 있습니다.

locals() 및 globals() 함수

locals() 및 globals() 함수는 호출된 위치에 따라 로컬 및 전역 네임스페이스의 이름을 반환하는 데 사용됩니다.

globals()가 함수 내에서 호출되면 해당 함수에서 전역적으로 액세스할 수 있는 모든 이름을 반환합니다.

locals()가 함수 내에서 호출되면 해당 함수에서 로컬로 액세스할 수 있는 모든 이름을 반환합니다.

두 함수의 반환 유형은 사전입니다. 따라서 keys() 함수를 사용하여 이름을 추출할 수 있습니다.

네임스페이스 및 범위 지정

변수는 개체에 매핑되는 이름입니다. 네임스페이스는 변수 이름과 해당 개체의 사전입니다.

Python 문은 로컬 네임스페이스의 변수에 액세스할 수 있습니다. 전역 이름 공간에서 전역 변수와 지역 변수의 이름이 비슷하면 지역 변수가 전역 변수를 가리게 됩니다.

각 함수에는 로컬 네임스페이스가 있습니다. 클래스 메서드는 다른 일반 함수와 동일한 범위 지정 규칙을 따릅니다.

전역 변수에 값을 할당하려면 전역 문을 사용해야 합니다.

예를 들어 전역 네임스페이스에 변수 Money를 정의합니다. Money 함수 내에서 Money 값을 할당합니다. 따라서 Python은 Money를 지역 변수로 가정합니다. 그러나 설정하기 전에 지역 변수 Money의 값에 접근했기 때문에 UnboundLocalError가 결과입니다. 전역 명령문의 주석을 제거하면 문제가 해결됩니다.

dir( ) 함수

dir() 함수는 모듈에 의해 정의된 이름을 포함하는 정렬된 문자열 목록을 반환하는 내장 함수입니다. 목록에는 모듈에 정의된 모듈, 변수 및 함수의 모든 이름이 포함됩니다.

reload() 함수

모듈을 가져올 때 모듈의 최상위 수준에 있는 코드는 한 번만 실행됩니다. 따라서 모듈의 최상위 코드를 다시 실행하려면 reload() 함수를 사용할 수 있습니다. reload() 함수는 이전에 가져온 모듈을 다시 가져옵니다.

통사론

|_+_|