[2024.01.1] 모듈과 제어문

체리마루·2024년 1월 18일

모듈 (Module)

: 한 파일로 묶인 변수와 함수의 모음, 특정한 기능을 하는 코드가 작성된 파이썬 파일(.py)
예시) math 모듈 - 파이썬이 미리 작성해 둔 수학 관련 변수와 함수가 작성된 모듈

import math
print(math.pi) #3.141592653589793
print(math.sqrt(4)) #2.0
  • 모듈 import
    : 모듈 내 변수와 함수에 접근하려면 import문 필요 ex) import math

  • 모듈 가져오기
    : 내장 함수 help를 사용해 모듈에 무엇이 들어있는지 확인 가능 ex) help(math)

  • 모듈 사용하기
    : '.'은 "점의 왼쪽 객체에서 점의 오른쪽 이름을 찾아라"라는 의미의 연산자

    #모듈명.변수명
    print(math.pi) #3.141592653589793
    
    #모듈명.함수명
    print(math.sqrt(4)) #2.0 -> 제곱근 (float 형태)
  • 모듈을 import하는 다른 방법
    : from절을 활용해 특정 모듈을 미리 참조하고 어떤 요소를 import할지 명시

    from math import pi, sqrt
    
    print(pi)
    print(sqrt(4))
  • 모듈 주의사항
    만약 서로 다른 모듈이 같은 이름의 함수를 제공할 경우 문제 발생
    마지막에 import된 이름으로 대체됨

    from math import pi, sqrt
    from my_path import sqrt
    
    #그래서 모듈 내 모든 요소를 한 번에 import 하는 *표기는 권장하지 않음
    from math import *

사용자 정의 모듈

  • 직접 정의한 모듈 사용하기
  1. 모듈 my_math.py 작성

  2. 두 수의 합을 구하는 add 함수 작성

  3. my_math 모듈 import 후 add 함수 호출

    # my_math.py
    
    def add(x, y):
        return x + y
    # sample.py
    
    import my_math
    print(my_math.add(1,2))

파이썬 표준 라이브러리

: 파이썬 언어와 함께 제공되는 다양한 모듈과 패키지의 모음

파이썬 document : https://docs.python.org/ko/3/
[자습서 / 라이브러리 레퍼런스]

패키지 (Package)

: 관련된 모듈들을 하나의 디렉토리에 모아 놓은 것
패키지 먼저 접근 후 - 그 안에 있는 모듈에 접근

  • PSL 내부 패키지 : 설치 없이 바로 import하여 사용
  • 외부 패키지 : pip를 사용하여 설치 후 import 필요

pip

: 외부 패키지들을 설치하도록 도와주는 파이썬의 패키지 관리 시스템

  • 파이썬 패키지 관리자(pip) : PyPI에 저장된 외부 패키지들을 설치

  • 최신 버전 / 특정 버전 / 최소 버전을 명시하여 설치할 수 있음
    $ pip install SomePackage
    $ pip install SomePackage==1.0.5
    $ pip install SomePackage==1.0.4

  • requests 외부 패키지 설치 및 사용 예시
    $ pip install requests

제어문

: 코드의 실행 흐름을 제어하는 데 사용되는 구문, 조건에 따라 코드 블록을 실행하거나 반복적으로 코드를 실행

조건문

: 주어진 조건식을 평가하여 해당 조건이 참인 경우에만 코드 블록을 실행하거나 건너뜀

  • if / elif / else

  • 복수 조건문

  • 중첩 조건문

반복문 (Loop Statement)

: 주어진 코드 블록을 여러 번 반복해서 실행하는 구문

  • 특정 작업을 반복적으로 수행 : 제한된 작업량이 있음

  • 주어진 조건이 참인 동안 반복해서 실행 : 제한된 작업량은 없음. 조건이 참인 동안, 조건이 false가 될 때까지 진행

  • for / while

for : 임의의 시퀀스의 항목(str, tuple, list, range)들을 그 시퀀스에 들어있는 순서대로 반복

*작업량은 시퀀스 안에 들어있는 요소의 개수만큼이 된다.

  • for statement의 기본 구조
    for 변수 in 반복 가능한 객체:
        코드 블록

반복 가능한 객체 (iterable)

: 반복문에서 순회할 수 있는 객체 (시퀀스 객체뿐만 아니라 dict, set 등도 포함)

for 문의 원리

items = ['apple', 'banana', 'coconut']

for item in items:
    print(item)
  • 리스트 내 첫 항목이 반복 변수에 할당되고 코드블록이 실행
  • 다음으로 반복 변수에 리시트의 2번째 항목이 할당되고 코드블록이 다시 실행
  • 마지막으로 반복 변수에 리스트의 마지막 요소가 할당되고 코드블록이 실행

문자열 순회 -> 가능!

country = 'Korea'

for char in country:
    print(char)

range 순회

for i in range(5):
    print(i)

딕셔너리 순회

my_dict = {
    'x': 10,
    'y': 20,
    'z': 30,
}

for key in my_dict:
    print(key)
    print(my_dict[key])

인덱스로 리스트 순회

  • 리스트의 요소가 아닌 인덱스로 접근하여 해당 요소들을 변경하기

    numbers = [4, 6, 10, -8, 5]
    
    for i in range(len(numbers)):
        numbers[i] = numbers[i] * 2
    
    print(numbers)

중첩된 반복문

  • 출력 결과 예측 :
    A c
    A d
    B c
    B d

=> 안쪽 반복문은 outers 리스트의 각 항목에 대해 한 번씩 실행됨
=> print가 호출되는 횟수 = len(outers) * len(inners)

중첩 리스트 순회

while

: 주어진 조건식이 참인 동안 코드를 반복해서 실행
== 조건식이 거짓이 될 때까지 반복

  • while 반복문 예시
a = 0

while a < 3:
	print(a)
    a += 1

print('끝')

pass

: 아무런 동작도 수행하지 않고 넘어가는 역할
-> 문법적으로 문장이 필요하지만 프로그램 실행에는 영향을 주지 않아야 할 때 사용

  1. 코드 작성 중 미완성 부분: 구현해야 할 부분이 나중에 추가될 수 있고, 코드를 컴파일하는 동안 오류가 발생하지 않음.
  2. 조건문에서 아무런 동작을 수행하지 않아야 할 때
  3. 무한 루프에서 조건이 충족되지 않을 때 pass를 사용하여 루프를 계속 진행하는 방법

enumerate(iterable, start=0)

: iterable 객체의 각 요소에 대해 인덱스와 함께 반환하는 내장함수

profile
멋쟁이 토마토 개발자 🍅

0개의 댓글