코딩하는 타코야끼

[스터디 노트] Week2_1일차[unit1 ~ 19] 본문

zero-base 데이터 취업 스쿨/스터디 노트

[스터디 노트] Week2_1일차[unit1 ~ 19]

가스오부시 2023. 7. 11. 03:34
728x90
반응형

1. 중급_1 [unit 1 ~ 5]


📍 함수란?

  • 파이썬의 함수는 수학의 함수와 동일하다.
  • 함수는 파이썬에서 기본으로 제공하는 내장함수와 사용자가 직접 선언하는 사용자 함수가 있다.
  • 함수는 특정 기능을 재사용하기 위해서 사용한다.
def mul_num():
    num = int(input("숫자 입력: "))
    print(f"제곱근은: {num ** 2}\\n")

mul_num()
mul_num()
mul_num()
>>>
숫자 입력: 3
제곱근은: 9

숫자 입력: 4
제곱근은: 16

숫자 입력: 5
제곱근은: 25

📍 함수 선언

  • 함수는 def 키워드, 함수명, :, 들여쓰기를 이용해서 선언한다.

[출처: zero-base]


📍 함수 호출

  • 함수명과 ‘ ( ) ’를 이용해서 함수를 호출한다.

📍 함수 내에서 또 다른 함수 호출

  • 함수 내에서 또 다른 함수를 호출할 수 있다.
  • pass를 이용해서 실행문을 생략할 수 있다.
def gugudan2():
    for i in range(1, 10):
        print(f"2 * {i} = {2 * i}")
    gugudan3()
    
def gugudan3():
    for i in range(1, 10):
        print(f"3 * {i} = {3 * i}")
				pass

📍 인수와 매개변수

  • 함수 호출 시 함수에 데이터를 전달할 수 있다.
  • 인수와 매개변수 개수는 일치해야 한다.
  • 매개변수 개수가 정해지지 않은 경우 ‘ * ’를 이용한다
def print_score(kor, eng, mat):
    print(f"총점: {kor + eng + mat}")
    print(f"평균: {round((kor + eng + mat) / 3, 2)}")
    
kor = int(input("국어 점수 입력: "))
eng = int(input("영어 점수 입력: "))
mat = int(input("수학 점수 입력: "))

print_score(kor, eng, mat)
>>>
국어 점수 입력: 85
영어 점수 입력: 92
수학 점수 입력: 79
총점: 256
평균: 85.33

📍 데이터 반환

  • return 키워드를 이용하면 함수 실행 결과를 호출부로 반환할 수 있다.
  • 함수가 return을 만나면 실행을 종료한다.
import random

def get_odd():
    
    while True:
        r_num = random.randint(1, 100)
        if r_num % 2 != 0:
            break
    return r_num

get_odd()
>>>
51

2. 중급_2 [unit 6 ~ 10]


📍 전역변수

  • 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정할 수는 없다.

📍 지역변수

  • 함수 안에 선언된 변수로 함수 안에서만 사용 가능하다.

📍 global 변수

  • global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
visitor_cnt = 0
def visitor():
    global visitor_cnt
    visitor_cnt += 1
    
    print(f"누적 방문객: {visitor_cnt}")

visitor()
visitor()
visitor()
>>>
누적 방문객: 1
누적 방문객: 2
누적 방문객: 3

📍 중첩 함수

  • 함수안에 또 다른 함수가 있는 형태이다.
  • 내부 함수를 함수 밖에서 호출할 수 없다.
# calculator()함수를 선언하고 calculator() 안에 
# 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 선언하자.
def cal(n1, n2, operator):
    
    def add_cal():
        print(f"덧셈 연산: {round(n1 + n2, 2)}")
    def sub_cal():
        print(f"뺄셈 연산: {round(n1 - n2, 2)}")
    def mul_cal():
        print(f"곱셈 연산: {round(n1 * n2, 2)}")
    def div_cal():
        print(f"나눗셈 연산: {round(n1 / n2, 2)}")
        
    if operator == 1:
        add_cal()
    elif operator == 2:
        sub_cal()
    elif operator == 3:
        mul_cal()
    elif operator == 4:
        div_cal()
    elif operator == 5:
        print("종료!!")

n1 = int(input("실수(n1) 입력: "))
n2 = int(input("실수(n2) 입력: "))
operator = int(input("1.덧셈, 2. 뺄셈, 3.곱셈, 4.나눗셈, 5.종료   "))

cal(n1, n2, operator)
>>>
실수(n1) 입력: 10
실수(n2) 입력: 20
1.덧셈, 2. 뺄셈, 3.곱셈, 4.나눗셈, 5.종료   4
나눗셈 연산: 0.5

📍 lambda 함수

  • lambda 키워드를 이용하면 함수 선언을 보다 간단하게 할 수 있다.
cal = lambda n1, n2: n1 + n2
result = cal(2, 4)

print(f"n1 + n2 = {result}")
>>>
n1 + n2 = 6

📍 모듈

  • 모듈이란, 이미 만들어진 훌륭한 기능으로 사용자는 쉽게 사용할 수 있다.
  • 파이썬 모듈은 내부 모듈, 외부 모듈 그리고 사용자 모듈로 구분할 수 있다.


📍 모듈 제작

  • 모듈은 특정 기능을 가지고 있는 파이썬 파일을 말한다.
# lotto.py
import random

def get_lotto():
    r_num = random.sample(range(1, 46), 6)
    
    return r_num
import lotto

result = lotto.get_lotto()

print(f"로또 당첨 번호: {result}")
>>>
로또 당첨 번호: [12, 38, 9, 17, 7, 15]

3. 중급_3 [unit 11 ~ 15]


📍 import

  • import 키워드를 이용해서 모듈을 임포트 한다.

  • as 키워드를 이용해서 모듈 이름을 단축 시킬 수 있다.


📍 from

  • from ~ as 키워드를 이용해서 모듈의 특정 기능만 사용할 수 있다.


📍 name 전역변수

  • __name__에는 모듈 이름이 저장되거나 ‘main’이 저장된다.
def cm_to_mm(n):
    return round((n * 10), 2)

if __name__ == "__main__":
    print(f"10cm: {cm_to_mm(10)}mm")
>>>
10cm: 100mm

💡 if __name__  == '__main__':

  • 파이썬 파일이 직접 실행될 때 해당 코드 블록을 실행하라는 의미를 가지고 있습니다.
  • 파이썬 파일은 두 가지 방식으로 실행될 수 있습니다.
    • 첫째, 다른 모듈에서 import하여 사용하는 방식이다.
    • 둘째, 직접 실행하는 방식입니다.
  1. 다른 모듈에서 import하여 사용하는 경우
    • 다른 모듈에서 현재 모듈을 import하여 사용할 때는 __name__  변수에는 현재 모듈의 이름이 저장됩니다.
    • 그렇기 때문에  if __name__ == '__main__':  조건은 거짓이 되어 해당 코드 블록이 실행되지 않습니다.
    • 이는 현재 모듈의 기능이 다른 모듈에서 사용될 때에는 실행되지 않아야 한다는 의미입니다.
  2. 직접 실행하는 경우
    • 현재 파이썬 파일을 직접 실행할 때는  __name__  변수에는  '__main__'  이라는 값이 저장됩니다.
    • 이 때  if __name__ == '__main__':  조건은 참이 되어 해당 코드 블록이 실행됩니다.
    • 이는 현재 모듈이 직접 실행될 때에만 특정한 동작을 수행하도록 지정하는 용도로 사용됩니다.

4. 중급_4 [unit 15 ~ 19]


📍 자주 사용하는 외부 모듈

  • 수학, 난수, 시간 모듈은 코딩할 때 유용하게 사용된다.


📍 객체지향 프로그래밍

  • 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성된다.

  • 객체는 클래스에서 생성된다.
  • 객체 사용 시 코드 재사용, 모듈화에 좋다.

📍 클래스 만들기

  • 클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 이용해서 만든다.
class Car:
    
    def __init__(self, color, length):
        self.color = color
        self.length = length
    
    def do_stop(self):
        print("stop!!")
        
    def do_start(self):
        print("start!!")
        
    def print_info(self):
        print(f"self.color : {self.color}")
        print(f"self.lenght : {self.length}")

📍 객체 생성

  • 객체는 클래스의 생성자를 호출한다.
car1 = Car("red", 200)
car2 = Car("blue", 300)

car1.print_info()
car2.print_info()
>>>
self.color : red
self.lenght : 200
self.color : blue
self.lenght : 300
  1.  

📚 study again

  • 2번에 ‘ 중첩 함수’ 에서 내적함수를 호출하고 싶을때 if 절을 사용했는데, 더 효율적인 방법이 있는지 공부!!
  • 3번에 “ if name  == 'main': “ 잘 기억해두기
  • lambda 신경쓰기.
  • 객체 생성 (class 생성) 신경쓰기

⚡️실습 코드 파일⚡️

w2_1일차 스터디 노트[unit_1 ~ 19].ipynb
0.42MB

반응형