boot camp day3

HIROYOSHI·2022년 1월 29일
0

2022/01/28 study record

함수와 클래스

함수는 def(Definition) 이라는 명령어로 만들 수 있으며 인자를 받아들일 수 있습니다.
전달받은 인자를 매개변수라고 부릅니다.

python code:

def greeting(greet, msgi="hiroyoshi"):  
	print(greet, msgi)

greeting("hi")

greeting 함수를 만들어서 say hi라는 인자를 받아들이고그 인자를 print에 넘겨주고 hiroyoshi에게 인사를 하게 print하는 함수입니다 msgi는 따로 인자를 안준다면 hiroyohsi에게 인사를 하고 인자를 넘겨준다면 그 사람에게 인사를 하는 형식으로 작동됩니다.

class Car:
    brand =""
    modle = ""
    color = ""

    def __print_info(self):
        print(self.brand,self.modle, self.color)


    def turn_on(self):
        print( self.modle, "자동차 시동을 겁니다.")
    def turn_off(self):
        print( self.modle, "자동차 시동을 끕니다.")
    def drive (self):
        print( self.modle, "자동차 주행중입니다.")

    def __str__(self):
        return"my car information {} {} {}".format(self.brand,self.modle,self.color)

car1 = Car()
car1.brand = "hundai"
car1.modle = "avante"
car1.color = "blue"
print(car1)
car1.turn_on()
car1.drive()
car1.turn_off()

출력:
my car information hundai avante blue
avante 자동차 시동을 겁니다.
avante 자동차 주행중입니다.
avante 자동차 시동을 끕니다.

car라는 클래스를 만들어서 brand와 modle,color 이라는 클래스 맴버를 만들고
클래스함수로 turn_on등의 함수를 추가하였고 _print __info___라는 함수를 만들어
print(car1(=객체이름) )을 입력하면 위 함수의 내용이 실행됩니다.

lambda

람다 형식은 인공지능 분야나 AutoCAD라는 설계 프로그램에서 쓰이는 Lisp 언어에서 물려받았다고 하는데 함수를 딱 한 줄만으로 만들게 해주는 좋은 녀석입니다.

lambda 매개변수 : 표현식
으로 나타낼 수 있으며

(lambda x,y: x + y)(10, 20)

와같이 쓸 수 있습니다.

reduce라는 함수를 삽입해주어서 실핼 할 수도 있는데

from functools import reduce 
reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])

출력: 10

reduce는 함수를 누적적으로 사용하는 함수입니다.
x+y의 결과를 다시 x에 넣고 다음 변수를 받아 ((((0+1)+2)+3)+4) 의 순서로 계산이 됩니다.

이런 함수로 문자열 뒤집기를 할 수 있는데

reduce(lambda x, y: y + x, 'abcde')

를 하면 출력이 'edcba'와 같은 형식으로 됩니다.

filter함수도 있는데 정수기 필터와 비슷한 의미로 정제해주는 역할을 한다.
사용의 예시로는

filter(lambda x: x < 5, range(10))

결과로는
[0,1,2,3,4]와 같이 5보다 작은 x값을 모아서 반환해줍니다.

profile
KNU COMPUTER ENGINEERING

0개의 댓글