Python 공부 기록-3

김시헌·2025년 3월 26일

함수

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

코드

def print_reverse(string):
  print(string[::-1])

실행 결과

print_reverse("python") 

코드를 실행시키면
nohtyp 역순으로 출력

my_dict에는 날짜를 키값으로 OHLC가 리스트로 저장돼 있다.

코드
my_dict = {"10/26" : [100, 130, 100, 100],
"10/27" : [10, 12, 10, 11]}

my_dict와 날짜 키값을 입력받아 OHCL 리스트를 출력하는 print_value_by_key 함수를 정의하라.

정답

def print_value_by_key (my_dict, key):
  print(my_dict[key])

실행 결과

print_value_by_key (my_dict, "10/26")

이 코드 실행시키면
[100, 130, 100, 100] 이렇게 출력됨

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

코드

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

실행 결과
1000000

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

코드

def pickup_even(numbers):
  result = []
  for number in numbers:
    if number % 2 == 0:
      result.append(number)
  return result

실행 결과

pickup_even([3,4,5,6,7,8])

이 코드를 실행하면
[4, 6, 8] 이렇게 출력됨

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

코드

def convert_int(string):
  string = string.replace(",", "")  
  number = int(string)  
  return number

다른 버전

def convert_int(string):
  return int(string.replace(',', ''))

실행 결과

convert_int("1,234,567")

위 코드 실행하면
1234567 이 출력됨

다음은 현재까지 완성된 FourCal 클래스이다.

코드

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

지금까지 살펴본 내용이 바로 이 4줄의 소스 코드를 설명하기 위한 것이었다. 앞에서 설명한 것들이 이해되지 않는다면 다시 한번 읽어 보기 바란다. 이 부분을 이해하지 못하면 다음으로 넘어갈 수 없기 때문이다.

더하기 기능 만들기

코드

class FourCal:
  def setdata(self, first, second):
    self.first = first
    self.second = second
  def add(self):
    result = self.first + self.second
    return result
    
a = FourCal()
a.setdata(4, 2)

a.add()

실행 결과
6

곱하기, 빼기, 나누기 기능 만들기

코드

class FourCal:
  def setdata(self, first, second):
    self.first = first
    self.second = second
  def add(self):
    result = self.first + self.second
    return result
  def mul(self):
    result = self.first * self.second
    return result
  def sub(self):
    result = self.first - self.second
    return result
  def div(self):
    result = self.first / self.second
    return result

a = FourCal()
b = FourCal()
a.setdata(4, 2)
b.setdata(3, 8)

실행 결과

>>> a = FourCal()
>>> b = FourCal()
>>> a.setdata(4, 2)
>>> b.setdata(3, 8)
>>> a.add()
6
>>> a.mul()
8
>>> a.sub()
2
>>> a.div()
2
>>> b.add()
11
>>> b.mul()
24
>>> b.sub()
-5
>>> b.div()
0.375

클래스 정의, 인스턴스 생성, 클래스 생성자-1

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

코드

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

실행 결과

areum = Human()

이 코드 실행시
'응애응애' 가 출력됨

0개의 댓글