함수

  • 함수 : 입력값을 가지고 어떤 일을 수행해서 결과물을 내어 놓는 것.
  • 매개변수: 함수를 정의할때 사용되는 변수 (밑에 예시로는 x,y)
  • 인수: 함수를 호출할때 넘기는 변수 (밑에 예시로는 4,5)
기본 함수의 구조

def 함수명(매개변수):
    수행할문장
    
    def add(x, y):
    return x + y
print(add(4,5))

입/출력

입력을 받아 어떤 변수에 대입하고 싶을  때

num = input("숫자를 입력하세요: ")
print(f'숫나는 중괄호에 표시됩니다.{num}')
터미널에 입력을 하게 되면 중괄호에 출력이 된다.
출력을 ""로 구분하면 +와같다
print("Hello""world")
print("Hello"+"world")
 
출력을 ,로 구분하면 띄어쓰기
print("Hello","world")
 

파일 입/출력(열기, 읽기, 쓰기)

파일을 생성하고 읽고 수정하는 코드들이 있다. 엄청 많아서 에버노트에 정리.

 

객체지향 프로그램밍의 특징

클래스

몬스터 100마리가 있다. 각자 hp가 있고 스스로 관리한다.

몬스터는 클래스고 각각의 몬스터는 객체(인스턴스)가 된다. 클래스 안에 있는 함수는 메서드라고 한다.

각 몬스터가 스스로 관리를 한다. 객체지향 프로그래밍.

 

객체지향 프로그랭

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 입니다.

 

패러다임 : 한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는, 사물에 대한 이론적인 틀이나 체계. 순화어는 `틀'.

 

로직 : 일반적으로 로직이라는 것은 어떤 프로그램을 만들 때의 논리적인 흐름을 이야기함.

 

4가지 특성

  • 추상화: 여기서 말하는 추상화는 추상 클래스나 추상 클래스가 갖는 추상 메서드를 의미하기보다는 클래스를 설계하는 것 자체를 의미합니다.
  • 캡슐화: 객체 지향 프로그래밍에서 기능과 특성의 모음을 "클래스"라는 "캡슐"에 분류해서 넣는것
1. 코드를 재수정 없이 재활용가능하게 하기 위해서 캡슐화를 사용합니다.
2. 접근 제어자를 통한 정보 은닉 하기에도 적합 합니다.
  • 상속 : 상속은 부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하는 것을 의미 합니다.
기능의 일부분을 변경해야 할 경우 상속받은 자식 클래스에서 해당 기능만 다시 수정(정의)하여 사용할 수 있게 하는 것 입니다.
  • 다형성 : 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것입니다. 즉 오버라이딩(Overriding), 오버로딩(Overloading)이 가능합니다.

오버라이딩 : 부모클래스의 메서드와 같은 이름, 매개변수를 재정의 하는것 입니다.

 

오버로딩 : 같은 이름의 함수 여러개. 변수의 갯수와 타입 등 특징이 달라 상황에 맞게 호출 됨.

그리고 파이썬에서는 오버로딩을 정식으로 지원하지 않고 구현은 가능하다는 점을 알고 있으면 되겠습니다.

 

Mission3

함수와 메소드의 차이점은 무엇인가요?

→ 함수는 명령문을 반복하는 기능. 메소드는 클래스 에서 객체에서 호출 되는 함수다.

 

객체 지향 프로그래밍에서 객체는 무엇인가요? 파이썬에서 객체는 어떻게 만들어지나요?

→객체는 클래스에서 데이터를 조작하는 메서드를 포함하는 개체.

클래스를 만들고 인스턴스화 하여 만든다.

 

파이썬에서 함수의 매개변수에 디폴트 값을 설정하는 방법은 무엇인가요?

→매개변수에 def func(a=2, b=3) 과 같이 할당하면 된다.

 

밑의 코드에서 예상되는 출력은 무엇인가요?

def square(x):
    return x * x		25

def apply(func, x):
    return func(x)

print(apply(square, 5))

→ apply 매개변수에 square, 5 가들어간다. square(5)로 리턴 된다. square(5) 함수를 계산하면 25다.

 

밑의 클래스를 정의했다고 가정하고 이 클래스를 통하여 객체를 생성하고, 너비와 높이를 5와 10으로 설정, 넓이와 둘레를 출력하는 코드를 작성해보세요

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def around(self):
        return 2 * (self.width + self.height)

↓..... 어려운데...?

 

// Some code
rect = Rectangle(5, 10)
print(rect.area())
print(rect.around())

밑의 코드의 결과값은 무엇일까요?

def my_func(a, b, c):
    print(a, b, c)


my_list = [1, 2, 3]

my_func(*my_list)

→my_func(*my_list) 는 my_list를 전개해서 함수를 호출한다는 뜻이다. a,b,c 에 1,2,3이 들어간다.

 

뭐지.... 너무 어려운데..?

반복 학습 밖에 없지 뭐...

'python' 카테고리의 다른 글

파이썬 문법 심화. 1  (1) 2023.03.23
파이썬 기초 부교재 정리. 3  (0) 2023.03.22
파이썬 기초 부교재 정리. 1  (0) 2023.03.21
파이썬 문법 기초. 2  (0) 2023.03.20
파이썬 문법 기초. 1  (0) 2023.03.20

+ Recent posts