코딩 이야기

Python 함수형 본문

Python

Python 함수형

별메아리 2023. 2. 24. 09:28
728x90

함수 선언하기

기본적인 함수를 선언하고 간단하게 함수를 호출하는 예제입니다.

def mydef01():                                #인수 없는 함수 선언
    print("함수를 선언합니다.")                 # 들여쓰기를 통해 함수 구현 부분
mydef01()                                     #함수를 호출
def mydef02(str="인수함수를 선언합니다."):      #인수 있는 함수 선언
    print(str)                                #인수로 받은 변수를 출력
mydef02()
mydef02("인수를 넣습니다.")

함수 인수 사용하기

여러 개의 인수를 입력받아서 계산을 하는 함수를 선언하는 예제입니다.

def mydef01():
    i = 10
    j = 20
    print(i+j)
mydef01()
def mydef02(i, j):
    print(i+j)
mydef02(10, 20)
# 계산할 숫자를 두 개 입력하세요.
def mydef03(i, j , p):                    #3개의 인수를 받는 함수 선언
    if p == '+':
        print(i+j)
    elif p == '-': 
        print(i-j)
    elif p == '*':  
        print(i*j) 
    elif p == '/':  
        print(i/j)   
n = int(input("첫 번째 숫자를 입력하세요."))  #사용자가 첫 번째 숫자를 입력
m = int(input("두 번째 숫자를 입력하세요."))  #사용자가 두 번째 숫자를 입력
p = input("연산자를 입력하세요(+, -, *, /)")  #사용자가 연산자를 입력
mydef03(n, m, p)                            #첫 번째 , 두 번째 , 연산자를 입력 받아서 함수 호출

파이썬 클래스와 모듈

클래스

클래스(Class)는 프로그래밍 과정에서 객체를 정의하는 데이터와 이를 활용하는 기능을 가질 수 있는 구조를 의미합니다. 각 클래스는 객체의 상태를 정의할 수 있는 속성(attributes)과 객체의 기능을 정의하는 메서드(methods)를 가질 수 있는 구조 입니다.

 

객체의 속성과 객체의 기능인 메서드가 있는 클래스를 선언하고 그 클래스를 사용하여 객체를 생성하는 예제입니다.

class AutoMobile:                                       #클래스 선언
    name = ""                                           #객체의 문자열 속성 선언
    velocity = 0                                        #객체의 숫자 속성 선언
    def velocityPlus(self):                             #객체의 기능인 메소드 선언
        self.velocity = self.velocity + 1
        print("속도는 %d 입니다." % self.velocity)
    def velocityDw(self):                               #객체의 기능인 메소드 선언
        self.velocity = self.velocity - 1
        if self.velocity < 0:
            self.velocity = 0
        print("속도는 %d 입니다." % self.velocity)
ac = AutoMobile()                                       #객체 생성
ac.velocityPlus()                                       #메소드 호출
ac.velocity = 20                                        #객체 속성에 값을 대입
ac.velocityDw()                                         #메소드 호출

객체 생성 시 호출되는 특수 내장 함수인_init_() self 기능을 사용한 예제입니다.

class AutoMobile:
    name = ""
    velocity = 0
    def __init__(self, str):
    #객체 생성 시  호출되는 특수 내장 함수, self는 객체 자신을 의미
        self.name = str # str 문자열을 02라인의 name에 대입
    def velocityPlus(self):
        self.velocity = self.velocity + 1
    def velocityDw(self):
        self.velocity = self.velocity - 1
        if self.velocity < 0:
            self.velocity = 0
ac = AutoMobile("소나타")            #문자열을 매개변수로 객체를 생성
ac.velocity = 20
ac.velocityPlus()
print(ac.name+"의 속도는 %d 입니다." % ac.velocity)

모듈

모듈은 미리 작성된 함수 코드를 모아놓은 파이썬 파일입니다. 파이썬에서는 모듈화를 통해서 구현된 다양한 라이브러리를 사용할 수 있습니다. 또는 직접 모듈을 개발할 수도 있으며 파이썬 개발환경이 기본적으로 제공하고 있는 다양한 파이썬 모듈을 사용할 수 있습니다.

 

간단한 일반 함수를 두 개를 포함하고 있는 모듈을 만드는 예제입니다.

def mydef01():                 #함수 선언
    print("일반 함수입니다.")
def mydef02(n, m):             #매개변수 있는 함수 선언
    print(n*m)

일반 함수 두 개를 선언한 module01.py 모듈을 사용한 예제입니다.

import module01                   #module01 모듈을 가져옵니다.
import sys                        #내장모듈 sys를 가져옵니다.
import math                       #내장모듈 math를 가져옵니다.
module01.mydef01()                #module01.py에서 선언한 mydef01()을 호출
module01.mydef02(10, 20)          #module02.py에서 선언한 mydef02()을 호출
print("-----------------------")
print(sys.builtin_module_names)   #시스템에서 제공하는 내장모듈 리스트
print(round(3.14))                #math 모듈에서 제공하는 round 함수

JSON과 Hashmap

 

JSON과 Hashmap은 모두 데이터 구조에 관련된 용어입니다. 하지만, JSON은 데이터 교환을 위한 경량의 데이터 포맷, Hashmap은 데이터를 저장하기 위한 자료 구조입니다.

 

JSON은 JavaScript Object Notation의 약자로, 키-값 쌍을 사용하는 경량의 데이터 교환 형식입니다. JSON은 텍스트 형식으로 작성되며, 일반적으로 웹 애플리케이션에서 데이터를 교환하는 데 사용됩니다. JSON은 다른 프로그래밍 언어에서도 쉽게 파싱할 수 있으며, 일반적으로 JSON을 사용하여 API 요청 및 응답을 수행합니다.

반면에, Hashmap은 데이터를 키-값 쌍으로 저장하는 자료 구조입니다. 키-값 쌍은 키를 사용하여 값을 검색하는 데 사용됩니다. Hashmap은 데이터를 효율적으로 검색하고 접근할 수 있도록 설계되어 있으며, 데이터베이스, 캐시, 메모리 내 저장소 등 여러 곳에서 사용됩니다.

 

JSON과 Hashmap은 모두 키-값 쌍을 사용하며, 데이터를 구성하고 저장하는 방법에서 유사점이 있습니다. 그러나 JSON은 데이터 교환을 위한 포맷이고 Hashmap은 데이터를 저장하기 위한 자료 구조입니다.

728x90

'Python' 카테고리의 다른 글

Python 제어문  (0) 2023.02.24
Python 자료형  (3) 2023.02.23
Comments