[Django] DAY6. Python을 이용한 함수와 클래스 이해하기

이하얀·2024년 2월 7일
0

2024년 2월 6일 화요일

📙 강의 내용 요약

  1. 함수(Function)

    하나의 특정한 규칙을 작업하기 위한 코드 뭉치이다.

    특정한 규칙을 재사용하기 위해 활용하며, 선언 후 호출로 사용한다.

    구성 : 함수 이름(매개변수, 매개변수…)

    자주 사용하는 print(출력값) = 출력할 값을 매개변수로 받는 ‘함수’라 볼수 있다.

  1. 클래스(Class)

    서로 연관되어 있는 변수, 함수의 집합을 말한다.

    함수를 포함해, 변수까지 재사용하기 위한 목적으로 사용한다.

    작성한 프로그램만의 공식이다.

    클래스로 산출된 값 = 객체(Object)이기 때문에, 객체를 생성하기 위한 설계도라고 볼 수 있다.

  1. 저번 시간 코드 답안

3-1. f-string이란?

문자와 변수를 혼재해 문자열로 바꾸고자 할 때 사용한다.

print(f”{3} sdadas”) 형식

  1. 04_function.py
def 더하기(첫번째, 두번째):
	return 첫번째+두번째

print(더하기(3, 4))
 출력 : 7

<문제>

출근 하시면!!!

아침업무로

배달 온 상자안에 물건을 전부 까서

사과는 냉장실에

아이스크림은 냉동실에 넣어 주시고,

나머지는 폐기처분 해주세요.

def 아침업무(상자):
	for 물건 in 상자:
		if 물건 == "사과":
			print(f"'{물건}' 냉장실에 넣기")
		elif 물건 == "아이스크림":
			print(f"'{물건}' 냉동실에 넣기")
		else:
			print(f"'{물건}' 은 폐기 처분")

출근 = False

if 출근:
		상자 = ["콩", "콩", "콩", "사과"]
		아침업무(상자)
----------출력 : 아무것도 나오지 않음--------------

출근 = True

if 출근:
		상자 = ["콩", "콩", "콩", "사과"]
		아침업무(상자)

-------------------출력-----------------------
'콩'은 폐기 처분
'콩'은 폐기 처분
'콩'은 폐기 처분
'사과' 냉장실에 넣기
​
  1. 05_class.py
class 클래스():
	변수 = 1

	def 변수변경(self):
		self.변수 = 3

<문제>

모든 사원들은 각자!

출근 하시면!!!

아침업무로

배달 온 상자안에 물건을 전부 까서

사과는 냉장실에

아이스크림은 냉동실에 넣어 주시고,

나머지는 폐기처분 해주세요.

그리고나서 아침업무 체크를 해주세요!

class 업무():

		def 아침업무(self, 상자):
			for 물건 in 상자:
				if 물건 == "사과":
					print(f"'{물건}' 냉장실에 넣기")
				elif 물건 == "아이스크림":
					print(f"'{물건}' 냉동실에 넣기")
				else:
					print(f"'{물건}' 은 폐기 처분")
	
출근 = False

if 출근:
		상자 = ["콩", "콩", "콩", "사과"]

		twowix_업무 = 업무()
		twowix_업무.아침업무(상자)

----------출력 : 아무것도 나오지 않음--------------

출근 = True

if 출근:
		상자 = ["콩", "콩", "콩", "사과"]

		twowix_업무 = 업무()
		twowix_업무.아침업무(상자)
-------------------출력-----------------------
'콩'은 폐기 처분
'콩'은 폐기 처분
'콩'은 폐기 처분
'사과' 냉장실에 넣기
---------------------------------------------


class 업무():
	아침업무유무 = False
	
	def 아침업무체크(self):
			self.아침업무유뮤 = True

		def 아침업무(self, 상자):
			for 물건 in 상자:
				if 물건 == "사과":
					print(f"'{물건}' 냉장실에 넣기")
				elif 물건 == "아이스크림":
					print(f"'{물건}' 냉동실에 넣기")
				else:
					print(f"'{물건}' 은 폐기 처분")

			self.아침업무체크()
	
출근 = True

if 출근:
		상자 = ["콩", "콩", "콩", "사과"]

		twowix_업무 = 업무()
		print(twowix_업무.아침업무유무)
		twowix_업무.아침업무(상자)
		print(twowix_업무.아침업무유무)

-------------------출력-----------------------
False
'콩'은 폐기 처분
'콩'은 폐기 처분
'콩'은 폐기 처분
'사과' 냉장실에 넣기
True
---------------------------------------------




if 출근:
		상자 = ["콩", "콩", "콩", "사과"]

		twowix_업무 = 업무()
		print(twowix_업무.아침업무유무)
		twowix_업무.아침업무(상자)
		print(twowix_업무.아침업무유무)

		베어유_업무 = 업무() //독립적 개체로 사용하기 때문에 각자 따로 가능
		print(베어유_업무.아침업무유무)

-------------------출력-----------------------
False
'콩'은 폐기 처분
'콩'은 폐기 처분
'콩'은 폐기 처분
'사과' 냉장실에 넣기
True
False
---------------------------------------------

♻️ 느낀점&인사이트

Java에서는 for-in 형태의 함수를 사용하지 않을 뿐더러, if-elseif 형태를 사용하는데 Python에서는 if - elif와 같이 else if를 elif로 호출해야한다.

또한, f-string이라는 것이 존재해서 문자열을 혼재해서 뽑아낼 수 있다는 것도 알게 되었다.

클래스를 구성할 때, Java는 new를 이용해 작성하는데 python에서는 주로 self라고 선언한다는 것도 알게 되었다.

확실히 Java보다는 Python이 코드의 구성이 간결하고 양이 적다고 느꼈다.

앞으로 코딩 테스트를 준비할 때에도 Java가 아닌 Python도 고려를 해봐야 할 것 같다.

효율성 측면에서 Python의 매력을 많이 느꼈던 강의였다!

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글