함수 좀 더 알아보기

09Roalwlzm01·2023년 11월 7일
0

Python

목록 보기
27/36

제너레이터

  • 제너레이터 함수
    - 이터레이터를 생성해주는 함수
    • return 키워드 대신 yield 키워드를 사용하여 구현
    • 함수의 리턴값으로 제너레이터 객체를 반환
  • 이터레이터
    - next() 함수 호출 시 계속 그 다음 값을 반환하는 객체
  • 제너레이터 객체는 next() 함수를 사용해 제너레이터 함수 내부의 코드를 실행
    - 제너레이터 객체는 이터레이터와 마찬가지로 next() 함수 호출 시 차례로 값을 반환

딕셔너리로 구성된 리스트에서 최솟값과 최댓값 찾기

  • '가격이 가장 저렴한 책'과 '가격이 가장 비싼 책'을 찾고 싶다.
    - key 매개변수 사용

sort()

  • sort() : 파괴적 함수
  • sorted() : 비파괴적 함수, 매개면수론 리스트, 튜플 등을 넣을 수 있음
  • 튜플을 넣으면 리스트로 반환됨
  • 튜플은 sort()라는 명령어를 제공하지 않음

파이썬의 자료형과 저장 방식

  • 기본 자료형
    • 숫자(int, float), 문자열(str), 불(bool)
    • 가볍고 정형화된 자료형으로 스택(stack)이라는 공간에 쌓아가며 저장
  • 객체 자료형
    • 기본 자료형을 제외한 모든 자료형
    • 무겁고 크기가 정형화되지 않은 자료형으로 힙(heap)이라는 거대한 공간에 저장
    • 리스트와 딕셔너리 같은 큰 자료형은 힙에 저장하되, 저장된 위치를 스택에 기록하여 효율적으로 자료를 검색
    • heap에 저장된 위치는 주소(address) 또는 레퍼런스(reference)라고 하며 일반적으로 16진수로 표현

함수의 값 복사와 레퍼런스 복사

  • 파이썬은 함수를 호출할 때 함수 내부 코드를 실행하기 위해 함수 내부의 변수를 저장할 스택을 추가로 만듦
  • 전역 스택 : 가장 외곽에 있는 스택

global 키워드

  • 함수 내부에서 전역 스택의 변수 값을 활용한 후, 전역 스택의 변수 값을 교체하려고 할 때 사용
a = 10
def 함수():
	print(a)
    a = 20
함수()
UnboundLocalError
  • 함수 외부에 있는 변수 a를 출력하고, append() 함수를 사용해 힘에 있는 리스트를 변경
a = [1, 2, 3]
def 함수():
	print(a)
    a.append(4)
함수()
[1,2,3,4]
  • 함수 외부에 있는 변수 a를 출력하고, 전역 스택에 있는 변수 a의 값(주소)의 변경을 시도
a = [1, 2, 3]
def 함수():
	print(a)
    a = [4, 5, 6]
함수()
UnboundLocalError: local variable ;a; referenced before assigmant

0개의 댓글