Python - Basic

김기훈·2025년 9월 2일

Python

목록 보기
2/8
post-thumbnail

기초 용어 - 1

용어의미예시
함수(Function)코드 블록. 입력 → 처리 → 출력 구조add
매개변수(Parameter)함수를 정의할 때 입력값을 받는 변수a, b
인자(Argument)함수를 호출할 때 실제로 전달하는 값3, 5
반환(Return)함수가 실행된 후 내보내는 값return a + b8
함수 호출(Call)함수를 실행하는 행위add(3, 5)
결과(Result)호출 후 받은 값result = 8

함수(def)

def add(a, b):          # 함수 정의
    return a + b

result = add(3, 5)      # 함수 호출

def 계산(a, b, c):
    합계 = a*1000 + b*500 + c*100
    return 합계

print(계산(5, 2, 3), '원입니다.')
----------------------------------
def 계산(a, b, c):
    return a*1000 + b*500 + c*100

print(계산(5, 2, 3), '원입니다.')
  • 이 두경우 모두 결과는 같지만 차이는 읽기 쉽게 하느냐 코드를 짧게 하느냐의 차이이다.

def function(x, y):
    z = x + y
    print(z)   # ← 이 줄 때문에 화면에 출력됨
    
print('옥수수와 수박의 수확량  :', function(10, 2))

# 출력내용 :12
          옥수수와 수박의 수확량  : None
          
# print(z)때문에 출력은 하지만 return값이 없기 때문에 값을 반환하지는 않는다.
---------------------------------------------------------------
def function(x, y):
    z = x + y
    return z   # 값을 돌려줌

print('옥수수와 수박의 수확량 :', function(10, 2))

# 출력내용: 옥수수와 수박의 수확량 : 12

기초용어 - 2

용어의미예시
클래스(Class)설계도(붕어빵 틀). 객체를 만드는 틀Student
생성자(Constructor)객체 생성 시 자동 실행되는 메서드__init__
인스턴스(Instance)클래스로부터 실제로 만들어진 개별 객체student1,2
인스턴스 변수인스턴스마다 따로 갖는 변수self.name
인스턴스 메서드인스턴스가 사용하는 함수greeting()
클래스 변수클래스 전체가 공유하는 변수Student.school_name
클래스 메서드클래스 자체를 다루는 메서드(@classmethod)set_school_name()
정적 메서드인스턴스/클래스와 상관없는 유틸 함수(@staticmethod)calc_avg()
메서드 호출인스턴스를 통해 메서드를 실행하는 행위student.greeting()

클래스(class)

class Student:
    school_name = "파이썬고등학교"   # ✅ 클래스 변수 (모든 학생이 공유)

    def __init__(self, name):       # 생성자 메서드
        self.name = name            # ✅ 인스턴스 변수

    def greeting(self):             # 인스턴스 메서드
        return f"안녕하세요, {self.name}입니다. {Student.school_name} 학생이에요."


student1 = Student("철수")
student2 = Student("영희")

print(student1.greeting())
print(student2.greeting())

# 클래스 변수는 공유됨
print(Student.school_name)   # 파이썬고등학교

-------------------------------------------------------------------------
class Student: 
   def __init__(self):  
   pass 
   
student = Student()
  • student = Student() , student1 = Student("철수")
    • 이 두개의 차이는 __init__(self, name) / __init__(self, name) 이다
      • __init__(self, name)
        여기서는 name가 필요하기 때문에 값이 들어간 것.

  • 클래스 안에 있는 함수 → "메서드"라고 부름

  • 클래스 밖에 있는 함수 → 그냥 "함수"

    • 클래스에 정의된 기능(속성, 메서드)을 사용하려면 반드시 객체를 생성해야 합니다.

class Person:
    def __init__(self):  # __ : 매직메서드
        self.hello = "안녕하세요"

    def greeting(self):
        print(self.hello)

호출 = Person()
# __init__이 self만 받으니까 → 그냥 Person()만 호출하면 돼요.
호출.greeting()
  • Person이라는 클래스 정의 시작 : 클래스는 객체를 만들기 위한 설계도 역할을 해요.
    • greeting이라는 인스턴스 메서드 정의.
      • 이 메서드를 호출하면 self.hello를 출력합니다.
  • 호출 = Person() → 객체 생성 + init만 실행 → 호출.hello = "안녕하세요"
  • 호출.greeting() → "안녕하세요" 출력. : 여기부터 호출.hello 변수 생성
    • 그 이후부터 밑에 함수들을 매서드로 사용 가능
class Person:
    def __init__(self, name):
        self.name = name
        self.hello = "안녕하세요"
    
    def greeting(self):
        print(f"{self.hello}, 저는 {self.name}입니다.")

철수 = Person("철수")

print(철수.hello)     # 안녕하세요
# 여기서는 __init__이 name을 매개변수로 받도록 정의했기 때문에,
# 객체를 만들 때 반드시 "철수" 같은 값을 넣어야 합니다.
철수.greeting()       # 안녕하세요, 저는 철수입니다.
  • 속성(호출.hello)은 데이터만 보여줌
  • 메서드(호출.greeting())는 그 데이터를 활용해서 "행동"을 실행
class Person:
    def __init__(self, name, age, address):
        self.hello = '안녕하세요.'
        self.name = name
        self.age = age
        self.address = address

    def greeting(self):
        print('{0} 저는 {1}입니다.'.format(self.hello, self.name))

maria = Person('마리아', 20, '서울시 서초구 반포동')
maria.greeting()    # 안녕하세요. 저는 마리아입니다.

print('이름:', maria.name)       # 마리아
print('나이:', maria.age)        # 20
print('주소:', maria.address)    # 서울시 서초구 반포동
  • self.hello는 항상 "안녕하세요."로 정해져 있어서 객체를 만들 때 매개변수로 안 받아도 됨.
  • print('{0} 저는 {1}입니다.'.format(self.hello, self.name))
    • {0}, {1}은 자리 표시자(placeholder)
    • .format()에 들어가는 값들이 순서대로 채워집니다.
    • {0} → self.hello 값 (즉, '안녕하세요.') / {1} → self.name 값 (즉, '마리아')


라이브러리

  • 개발자가 자주 사용하는 기능들을 미리 코드로 묶어놓은 모음집
    • 필요할때 import해서 가져와 사용
profile
안녕하세요.

0개의 댓글