[미래유망 2025-03-26]

돼지인간·2025년 3월 26일

미래유망

목록 보기
3/41

함수

함수는 다음과 같이 만든다.

def 함수이름(매개변수): # 매개변수는 없다면 생략 가능
	코드1
    코드2
    ...
    return 반환값 # 반환값도 없다면 생략 가능

여러개의 값을 받는 함수

# 만약 입력값이 여러개 일 경우 튜플로 저장
def 함수이름(*매개변수):
	return 반환값

키워드 매개변수

# 입력키를 딕셔너리 형태로 저장하고 싶을 때
def print_kwargs(**kwargs): # **로 딕셔너리 형태로 저장
  print(kwargs)
print_kwargs(name='foo', age=3)

매개변수 값을 미리 정해둔 함수

# man = True라고 미리 받음
def say_myself(name, age, man = True):
  print("나의 이름은 %s 입니다." % name)
  print("나이는 %d입니다." % age)
  if man:
    print("남자입니다.")
  else :
    print("여자입니다.")
say_myself("강옥수", 52)

매개변수 : 함수에 입력으로 전달된 값을 받는 변수
반환값 : 반환할 값

예시 1)

def add(a, b): # 함수를 만듬
  return a + b # a + b의 값을 반환함
  
a = 3
b = 4
c = add(a, b) # 매개변수로 a : 3, b : 4를 ㄴ넣어줌
print(c) # 반환값 출력

예시 2)

def add_many(*args):
  result = 0
  for i in args:
    result = result + i # *args에 입력받은 모든 값을 더한다
  return result

함수를 사용한 예제 풀어보기

입력된 문자열을 역순으로 출력하는 print_reverse 함수를 정의하라

def print_reverse(input):
  return input[::-1] # 슬라이싱을 이용해 뒤집어 줌
print(print_reverse("python"))

my_dict에는 날짜를 키 값으로 OHLC가 리스트로 저장되어 있다.
my_dict와 날짜 키 값을 입력받아 OHLC 리스트를 출력하는 print_valuy_by_key 함수를 정의하라

my_dict = {"10/26" : [100,130,100,100],
           "10/27" : [10,12,10,11]}
def print_value_by_key(my_dict, key):
  return my_dict[key]
print(print_value_by_key(my_dict, "10/26"))

연봉을 입력받아 월급을 계산하는 calc_monthly_salary(annual_salary) 함수를 정의하라.
회사는 연봉을 12개월로 나누어 분할 지급하며, 이 때 1원 미만은 버림한다.

def calc_monthly_salary(annual_salary):
  return int(annual_salary / 12)
print(calc_monthly_salary(12000000))

숫자로 구성된 하나의 리스트를 입력받아, 짝수들을 추출하여 리스트로 반환하는 pickup_even 함수를 구현하라.

def pickup_even(list_even):
  array = []
  for i in list_even:
    if i % 2 == 0:
      array.append(i)
  return array
print(pickup_even([3,4,5,6,7,8]))

콤마가 표현된 문자열 숫자를 입력받아 정수로 변환하는 convert_int 함수를 정의하라.

# 내가 푼 답
def convert_int(item):
  result = item.split(",")
  stringList = ""
  for i in result:
    stringList += i
  return int(stringList)
print(convert_int("1,234,567"))

# 예제 풀이 (이렇게 효율적일 수가.....)
def convert_int(item):
  return int(item.replace(',', ''))
print(convert_int("1,234,567"))

클래스

클래스 : 코드의 유지보수 및 코드 재사용을 용이하게 사용할 수 있다.

class FourCal:
  def setdata(self, first, second):
    self.first = first
    self.second = second

  def add(self):
    return self.first + self.second
  def minus(self):
    return self.first - self.second
  def mul(self):
    return self.first * self.second
  def div(self):
    return self.first / self.second

a = FourCal()
a.setdata(1, 2)
print(a.add())

생성자 : 객체가 생성될 때 자동으로 호출되는 메서드를 의미한다.

class FourCal:
  def __init__ (self, first, second):
    self.first = first
    self.second = second

  def add(self):
    return self.first + self.second
  def minus(self):
    return self.first - self.second
  def mul(self):
    return self.first * self.second
  def div(self):
    return self.first / self.second

a = FourCal(1, 2)
print(a.add())

self : self가 없다면 클래스 하나로 다양한 객체를 생성할때 어떤 클래스의 변수인지 확인하기 어려울 것이다.

클래스를 사용한 예제 풀어보기

비어있는 사람(Human) 클래스를 "정의"해보세요.
사람(Human) 클래스의 인스턴트를 "생성"하고, 이를 areum 변수로 바인딩해보세요.
사람(Human) 클래스에 "응애응애"를 출력하는 생성자를 추가하세요.

class Human:
  def __init__(self):
    print("응애응애")
areum = Human()

profile
안녕하세요 게임개발을 공부하고 있는 돼지인간 입니다.

0개의 댓글